【问题标题】:NPM update all to latest version [duplicate]NPM全部更新到最新版本[重复]
【发布时间】:2014-12-04 05:20:47
【问题描述】:

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

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

但它不起作用。

谢谢!!

【问题讨论】:

  • Npm 做不到,试试npmjs.org/package/npm-check-updates
  • @jgillich 有没有等价的凉亭?
  • @Cétia 我不使用凉亭,所以不知道,抱歉。
  • @chemitaxis npm-check-updates 有一个自述文件,向您展示如何使用它。安装它肯定没有任何作用,你需要运行它。
  • @chemitaxis 我的回答最后对你有帮助吗?

标签: node.js npm


【解决方案1】:

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

sudo npm install -g cordova@latest

要更新 npm,只需执行相同操作:

sudo npm install -g npm@latest

【讨论】:

  • 有没有办法将所有包更新到最新的,而不仅仅是选择的包?
  • 不要使用sudo从npm安装随机包。
【解决方案2】:

根据它们在您的package.json 中的列出方式,您应该编辑每个依赖项的版本。

一个例子是:

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

将版本设置为* 会将其设置为最新版本。在http://browsenpm.org/package.json

阅读有关版本控制的依赖关系

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

$ npm install


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

$ npm install grunt --save

【讨论】:

    【解决方案3】:

    看这篇文章 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
    }
    

    【讨论】:

    • 你表现出非常不愉快的行为,为什么?
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2019-08-12
    • 2017-01-21
    相关资源
    最近更新 更多