[英]npm git repository not updating versions
我有一個 git 存儲庫,我正在嘗試將其設置為我的項目中的依賴項。 使用 NPM,我的package.json
看起來像這樣:
"devDependencies": {
"grunt": "~0.4.0",
"grunt-contrib-connect": "~0.2.0",
"grunt-contrib-watch": "~0.3.1",
"custom": "git://github.com/myGitHubRepo/repo.js.git#b7d53a0cfbe496ad89bde6f22324219d098dedb3",
"grunt-contrib-copy": "~0.4.0"
}
在第一個
npm install
它安裝所有東西並毫無問題地獲取存儲庫。 但是如果我改變這個提交 hash 讓我們說
"custom": "git://github.com/myGitHubRepo/repo.js.git#d6da3a0...", // a different one
不更新了? 誰能指出我怎么能得到這種行為?
我只是想分享這個代碼,並且能夠在某個時候更改這個版本, npm
會自動更新這個。
好的,這就是它的完成方式。
我也很困惑。
所以我在 git@github.com:myModule/MySweetModule.git 有一個私有的 npm 模塊,我剛剛發布了最新的標記版本。 不幸的是,我無法弄清楚它是如何工作的,但它在您的主人身上起作用。 SOOO 您的 master 分支可以是您的集成分支,並且您有用於構建下一個版本的 stage 分支。 版本完成后,只需將其合並到 master 並增加您的私有倉庫的版本(因此您的私有倉庫現在從 1.0.0 到 1.0.1)。 如果你調用npm install
它會更新你的倉庫,如果 master 的 package.json 版本大於當前的工作倉庫。 它將始終采用最新的回購。
我同意。 所以讓我們用更好的方式來做吧! 如果你為你的私人倉庫發布tags
,你可以通過"custom": "git+ssh://git@github.com:usr/proj.git#TAG_NAME"
引用它們"custom": "git+ssh://git@github.com:usr/proj.git#TAG_NAME"
因此,我有一個名為0.1.0
的標簽,然后我會將 package.json 中的 url 版本化為這樣。 "custom": "git+ssh://git@github.com:usr/proj.git#0.1.0"
我相信這是回答您的最佳方法。 但我不是 gitanista
如果您嘗試返回某個版本,它似乎不起作用。 所以從0.2.2
到0.2.1
它不會更新你的項目。 如果回滾版本,請確保先執行npm remove myProj
然后執行npm install
。
這已經在 npm 中修復了,請升級到 npm >= 1.3.10
示例用法
"dependencies": { "thing": "git://github.com/myGitHubRepo/repo.js.git#56477cb", }
一天后
"dependencies": { "thing": "git://github.com/myGitHubRepo/repo.js.git#67f90b5", }
然后再次npm install
,您將獲得新的參考!
如果你的 "myGitHubRepo/repo.js" 是一個私有包,你應該設置"private": true
以確保它不會被意外發布到 npm 注冊表
手動更新那個特定的包對我有用。
並自動執行此操作,我將此安裝后腳本添加到我的 package.json
"scripts": {
...
"postinstall": "npm update custom"
}
正如@Nestoro 所建議的,手動更新 package也對我有用:
npm update
npm install <your package name>
我遇到了這個問題,所有答案都有自己的問題,所以我必須找到更好的方法。
我發現了一種更新的方法來防止 npm 問題與文檔中安裝的 package 升級(這可能需要更新版本的 npm):
確保您在存儲庫中標記版本。
然后你可以使用這個稍微修改過的 URL 包含你的 repo:
git+ssh://git@<repo url>.git#semver:<tag/package version>
到目前為止,這表現得更好,並且沒有降級或升級版本的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.