如果我更新NPM工作流应用程序中的package.json文件,现有用户运行什么命令来更新其本地node_modules依赖项?
要开始使用它,它们会运行:
$ npm install
那么如果对package.json文件进行了更改,它们会运行什么?或者他们只是删除文件夹并重新运行npm install
命令?
答案 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
中删除的包会导致意外行为。