如果package.json文件已经更新,用户应该运行什么NPM命令?

如果我在NPM工作stream应用程序中更新package.json文件,现有用户运行什么命令来更新其本地node_modules依赖关系?

要开始使用它,他们运行:

$ npm install 

那么,如果package.json文件发生了变化,它们会运行什么呢? 或者他们只是删除文件夹,然后重新运行npm install命令?

要重新validationpackage.json并安装调整后的版本或新的包:

 $ npm install 

不会做的一件事就是删除不在package.json中的包。 要做到这一点,运行:

 $ npm prune 

如果您只更改包版本而不添加新包:

 $ npm update 

如果你已经更新了特定的软件包版本:

 $ npm update {packagename} 

你应该这样做

 npm install && npm prune 

要么

 npm upgrade && npm prune 

npm install会比npm upgrade更快,因为如果package.json要求更新的版本,它只更新node_modules package.json 。 另一方面, npm uprade将会下载更新到依赖项(如果可用的话),这可能包括错误修复。 对于≥npm-5 ,你应该使用npm install因为npm upgrade会有修改任何不应该被修改的package-lock.json文件package-lock.json ,除非你是包的维护者。

npm prune是必要的,因为package.json的更新可能已经删除了依赖关系。 如果你不运行npm prunepackage.json的先前版本所安装的软件包将保留在node_modules目录下,如果你刚下载/克隆项目并运行npm install ,那么这个目录将不在那里。 由于某些包有条件地调用require() ,甚至是扫描node_modules目录,所以从package.json中移除的package.json会导致意外的行为。