我从另一个项目中复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意修复。
最简单的方法是什么?
我知道的最好的方法是运行npm info express版本,然后手动更新package.json中的每个依赖项。一定有更好的办法。
{
"name": "myproject",
"description": "my node project",
"version": "1.0.0",
"dependencies": {
"express": "^3.0.3", // how do I get these bumped to latest?
"mongodb": "^1.2.5",
"underscore": "^1.4.2"
}
}
有关纱线特定的解决方案,请参阅本堆栈溢出线程。
我真的很喜欢npm升级的工作方式。这是一个简单的命令行实用程序,它可以遍历所有依赖项,让您查看当前版本与最新版本的比较,并根据需要进行更新。
以下是在项目根目录中运行npm升级后发生的情况的屏幕截图(在package.json文件旁边):
对于每个依赖项,您可以选择升级、忽略、查看更改日志或完成该过程。到目前为止,这对我来说效果很好。
要清楚,这是一个第三方软件包,需要在命令生效之前安装。它不附带npm本身:
npm install -g npm-upgrade
然后从具有package.json文件的项目的根目录:
npm-upgrade
为npm v2更新+
npm 2+(节点0.12+):
npm outdated
npm update
git commit package-lock.json
古代npm(约2014年):
npm install -g npm-check-updates
npm-check-updates
npm shrinkwrap
git commit package-lock.json
一定要收缩你的部门,否则你可能会导致一个失败的项目。前几天我做了一个项目,但它无法运行,因为我的部门都过时了/更新了/一团糟。如果我收缩,npm就会安装我所需要的东西。
细节
对于走到这一步的好奇者,我推荐如下:
使用npm检查更新或npm过时来建议最新版本。
# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.
$ npm update
# OR
# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u
###然后进行一次干净的安装(没有rm,我收到了一些依赖性警告)
$ rm -rf node_modules
$ npm install
最后,使用npm-shrinkwrap将精确版本保存到npm-shrykwrap.json
$ rm npm-shrinkwrap.json
$ npm shrinkwrap
现在,npm安装将使用npm-shrinkwrap.json中的精确版本
如果将npm-shrinkwrap.json签入git,则所有安装都将使用完全相同的版本。
这是一种从开发(所有更新,所有时间)过渡到生产(无人接触任何东西)的方法。
npm过时npm检查更新npm包络线
p.s.Yarn正在将您的包裹列表发送到Facebook。