NPM更新所有最新版本

时间:2014-10-09 10:08:12

标签: node.js npm

我想将我的所有包更新到最新版本:

npm outdated

结果:

Package                Current        Wanted        Latest  Location
cordova            3.4.0-0.1.0  3.6.3-0.2.13  3.6.3-0.2.13  cordova
commander                2.0.0         2.0.0         2.3.0  npm-check-updates > commander
async                   0.2.10        0.2.10         0.9.0  npm-check-updates > async
semver                   2.2.1         2.2.1         4.0.3  npm-check-updates > semver
read-package-json        1.1.9         1.1.9         1.2.7  npm-check-updates > read-package-json
npm                     1.3.26        1.3.26         2.1.2  npm-check-updates > npm

我该怎么做?

我试过了:

sudo npm update -g cordova

这也没有错误:

npm install npm-check-updates

但它没有用。

谢谢!

3 个答案:

答案 0 :(得分:3)

npm可以!例如,我们会将cordova更新为最新版本:

sudo npm install -g cordova@latest

要更新npm,请执行相同的操作:

sudo npm install -g npm@latest

答案 1 :(得分:1)

根据package.json中列出的内容,您应该根据每个依赖项编辑版本。

一个例子是:

"devDependencies": {
  "grunt": "*"
}

将版本设置为*会将其设置为最新版本。在此处了解版本控制依赖项http://browsenpm.org/package.json

完成后,您可以告诉NPM安装所有项目依赖项。

$ npm install

提示:如果您没有自动将项目依赖项保存到package.json,那么您应该这样做。只需将--save添加到安装查询的末尾即可。像这样

$ npm install grunt --save

答案 2 :(得分:-1)

看到这篇文章 HOW TO: Update all npm packages in your project at once

“scripts”: {   “update:packages”: “node wipe-dependencies.js &&
                  rm -rf node_modules && npm update --save-dev
                  && npm update --save” },

要在命令行上运行:

npm run update:packages

或者只更新npm注册表中的包:

const fs = require('fs')
const wipeDependencies = () => {
  const file  = fs.readFileSync('package.json')
  const content = JSON.parse(file)
  for (var devDep in content.devDependencies) {
    if (!content.devDependencies[devDep].includes(git)) {
      content.devDependencies[devDep] = '*'
    }
  }
  for (var dep in content.dependencies) {
    if (!content.dependencies[dep].includes(git)) {
      content.dependencies[dep] = '*'
    }
  }
  fs.writeFileSync('package.json', JSON.stringify(content))
}

if (require.main === module) {
  wipeDependencies()
} else {
  module.exports = wipeDependencies
}