NodeJS npm git仓库不更新版本

vybvopom  于 2023-05-17  发布在  Node.js
关注(0)|答案(5)|浏览(164)

我有一个git repo,我试图在我的项目中将它设置为依赖项。使用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

它安装一切并获取存储库没有问题。但是如果我把这个提交哈希改成

"custom":     "git://github.com/myGitHubRepo/repo.js.git#d6da3a0...", // a different one

它不更新!谁能告诉我,我是怎么得到这种行为的?
我只是想分享这段代码,并能够在某个时候改变这个版本,npm将自动更新这一点。

wnvonmuf

wnvonmuf1#

好吧,这是如何做到的。
我也很困惑。
所以我在www.example.com上有一个私有的npm模块git@github.com:myModule/MySweetModule.git我刚刚发布了最新的标记版本。不幸的是,我不知道这是如何工作的,但它的工作关闭你的主人。SOOO你的master分支可以是你的集成分支,你有构建下一个版本的stage分支。在版本完成后,只需将其合并到master中并增加您的私有仓库的版本(因此您的私有仓库现在从1.0.0变为1.0.1)。如果你调用npm install,如果master的package.json版本高于当前工作的repo,它会更新你的repo。它总是会采取最新的回购。

那感觉糟透了

我同意。所以让我们用更好的方式来做吧!如果您使用tags作为您的私有repo版本,您可以通过"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

evrscar2

evrscar22#

手动更新那个特定的包对我来说很有用。
为了自动完成这个任务,我将这个postinstall脚本添加到了我的package.json中

"scripts": {
 ...
 "postinstall": "npm update custom"
}
mv1qrgav

mv1qrgav3#

我遇到了这个问题,所有的答案都有自己的一套问题,所以我必须找到一个更好的手段。
我发现了一种新的方法来防止这个npm问题,在docs中安装包升级(这可能需要更新版本的npm):
确保您在存储库中标记版本。
然后你可以使用这个稍微修改过的URL来包含你的repo:

git+ssh://git@<repo url>.git#semver:<tag/package version>

这表现得更好,并没有问题,降级或升级版本,因为我已经看到到目前为止。

uxh89sit

uxh89sit4#

手动更新软件包,建议by @Nestoro也适用于我:

npm update
npm install <your package name>
svmlkihl

svmlkihl5#

我找到的解决方案是删除package-lock.json,然后执行npm i

相关问题