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

时间:2016-09-19 20:43:17

标签: node.js npm package.json

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

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

$ npm install

那么如果对package.json文件进行了更改,它们会运行什么?或者他们只是删除文件夹并重新运行npm install命令?

2 个答案:

答案 0 :(得分:3)

要重新验证package.json并安装调整后的版本或新软件包:

$ npm install

赢得的一件事就是删除package.json中不包含的软件包。为此,请运行:

$ npm prune

如果您只更改了软件包版本而未添加新软件包:

$ npm update

如果您已更新特定的软件包版本:

$ npm update {packagename}

答案 1 :(得分:0)

你应该做

npm install && npm prune

npm upgrade && npm prune

npm install将比npm upgrade更快,因为如果node_modules要求更新的版本,它只会更新package.json中的包。另一方面,npm uprade将下载更新依赖项(如果可用),其中可能包含错误修复。对于≥npm-5,您应该使用npm install因为npm upgrade会产生修改任何不应修改的package-lock.json文件的副作用,除非您是软件包的维护者。< / p>

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