如何使用npm安装并永久强制安装最新版本?

14

我正在部署一个专门供我们公司内部使用的私有npm模块。由于该模块在内部处理,因此我们可以信任版本升级等操作。

如何在各个项目中安装该模块,以便每次运行npm install时都会安装最新版本的模块,这样我就不必在每次部署时遍历一堆项目并更新每个package.json内的版本号了。

请注意,这应该仅适用于选定的软件包,而不是所有软件包——即仅适用于托管在我们私有服务器上的软件包。


2
嗨 @Steveland83。我认为这不是重复的。我不想手动更新每个依赖项,我只想在每次 npm install 时自动安装该依赖项的最新版本。 - john maccarthy
将版本设置为“*”对我很有用,当我想要在私有存储库中使用最新版本时。例如:"async": "*"。--编辑-- 在下面提供了正式答案... - binarymax
3个回答

11
在您的 package.json 文件中使用 "*" 作为版本号。例如:
"dependencies": {
 "my-awesome-repo": "*"
}

在执行npm install命令时,将自动安装最新版本的“my-awesome-repo”,该版本可在npm上使用。


1
太好了,这就是我一直在寻找的解决方案。你有没有想过在 yarn.lock 或 npm lockfiles 的情况下会出现什么问题? - john maccarthy
我不知道 - 我从未使用过yarn,也从未关注过npm lockfiles。 - binarymax
2
@johnmaccarthy 如果你已经有一个包含该软件包的 yarn.lock 文件,运行 yarn不会 更新软件包到最新版本。如果你删除了 yarn.lock 文件,则它将更新软件包到最新版本。 - Benjamin

4
一种方法是在每次安装前运行此命令。
npm i -g npm-check-updates
npm-check-updates -u
npm install

在npm 3.11以下版本:

"dependencies": {
 "express": "~3.2.0",
 "mongodb": "~1.2.14",
 "underscore": "~1.4.4",
 "rjs": "~2.10.0",
 "jade": "~0.29.0",
 "async": "~0.2.7"
}

1
无法标记,但在 https://dev59.com/gmQo5IYBdhLWcg3wbexJ 中已有答案。 - Hiplobbe
但是...这根本不是一个合适的答案。我 不想 更新所有依赖项,那肯定会破坏构建。我只想在单独的 @example 命名空间中更新特定的私有模块。 - john maccarthy
我的理解是,这可悲地是唯一的方法,如果有更好的方法,请告诉我们。 - Hiplobbe
请随意查看已接受的答案以获取解决方案。 - john maccarthy

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接