如果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 prune
, package.json
的先前版本所安装的软件包将保留在node_modules
目录下,如果你刚下载/克隆项目并运行npm install
,那么这个目录将不在那里。 由于某些包有条件地调用require()
,甚至是扫描node_modules
目录,所以从package.json
中移除的package.json
会导致意外的行为。
- 如何在VSCode中打开浏览器,就像另一个编辑器选项卡一样
- Gulp量angular器:seleniumwebdriver退出状态1
- NodeJS模块安装程序不设置PATHvariables
- Angular4找不到Jquery-UI函数
- 如何在一个mongoose对象上添加临时属性,仅仅为了响应,而不是存储在数据库中
- Bookshelf.js在创build新logging之前进行独特的电子邮件validation
- express + jade:提供的局部variables在视图中是未定义的(node.js + express + jade)
- Angular,没有浏览器?
- 如何将Nightmarejs导入到angular-cli组件中