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

What NPM command should users run if the package.json file has been updated?

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

为了开始使用它,他们 运行:

$ npm install

如果 package.json 文件发生变化,他们 运行 怎么办?或者他们只是删除文件夹并重新运行 npm install 命令?

要重新验证 package.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 中的包。另一方面,npm uprade 将下载可用的依赖项更新,其中可能包括错误修复。对于 ≥npm-5,您应该使用 npm install,因为 npm upgrade 会产生修改任何 package-lock.json 文件的副作用,除非您是软件包的维护者,否则不应修改这些文件。

npm prune 是必需的,因为对 package.json 的更新可能删除了依赖项。如果你不 运行 npm prune,以前版本 package.json 安装的包将保留在 node_modules 目录中,如果你 downloaded/cloned项目和 运行 npm install。由于某些包如何有条件地调用 require() 甚至扫描 node_modules 目录,留下从 package.json 中删除的包可能会导致意外行为。