2016-12-06 549 views
9

目前,如果我运行npm install,它会安装已安装软件包的更新版本。我如何安装package.json文件中指定的确切版本?npm安装package.json中指定的确切软件包版本

+1

你是怎么在'package.json'中指定版本的?有一个固定版本的修改器。 – Sirko

+1

我的不好,'package.json'版本指定为'^ version'。我只是假设如何版本。将删除'^'修饰符。谢谢! – suheb

回答

14

该行为实际上是由指定package.json中的版本的行为驱动的。如果版本号看起来像“1.0.0”,没有任何其他符号,应该安装确切版本(1.0.0)。

那么你可以做的只是修改package.json然后运行npm install。确保在清除node_modules目录之前执行此操作。

https://docs.npmjs.com/files/package.json#dependencies

+2

感谢您的好解释。 'package.json'使用'^'修饰符。 – suheb

+2

请注意,所有子依赖仍然存在一个问题。即使您为直接依赖关系指定严格版本,也不能保证这些版本在发布时不会触发新的安装。 –

1

默认情况下使用NPM安装软件包^这意味着在相同的主要范围内的任何版本,您可以通过使用--save-确切

// npm 
npm install --save --save-exact react 

// yarn 
yarn add --exact react 

我创建了一个博客帖子切换这一行为关于这个如果有人在未来寻找这个。

https://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/