【问题标题】:How do I update devDependencies in NPM?如何更新 NPM 中的 devDependencies?
【发布时间】:2012-04-21 13:17:07
【问题描述】:

npm update 似乎只是更新了dependencies 中的包,但是devDependencies 呢。

现在您可以通过运行npm install . 来安装devDependencies,但这不适用于npm update .

有什么想法吗?

【问题讨论】:

  • 我刚刚遇到了同样的事情。我对npm installnpm update 之间的这种不对称感到惊讶。我通过删除我的node_modules 目录然后再​​次运行npm install 来解决它,但似乎应该有更好的方法。
  • 我为此行为开了一个bug report。我们会看看会发生什么。
  • 这可能是因为 NPM 开发人员认为人们会使用 npm link 来做开发环境。

标签: node.js npm


【解决方案1】:

强制更新的一种(缓慢)方法是删除 node_modules 目录,然后再次执行npm install

这是npm update 命令的一个已知错误,已在npm 的开发分支上修复,请参见此处: https://github.com/isaacs/npm/pull/3863

它应该很快就会登陆最新的稳定版本的 npm。

【讨论】:

  • 在 npm > v5 的情况下,您还需要删除 package-lock.json 才能使其正常工作,否则它只会安装该锁定文件中列出的版本。
  • 另外,这不会为您更新package.json。这是thread tracking the issue
【解决方案2】:

当前版本的 NPM (1.3.11) 不再解决此问题。

更新适用于:npm update

【讨论】:

【解决方案3】:

我遇到了和 OP 一样的问题,但没有找到解决方案,所以我决定编写一个 Grunt 插件来自动更新我的 devDependencies..

它在 Github 上,我很想获得一些意见和合作,以使其成为 NPM 尚未提供的最佳工具。

基本上,它会通过一个简单的 Grunt 任务自动更新您过时的开发依赖项。

https://github.com/pgilad/grunt-dev-update

【讨论】:

    【解决方案4】:

    要更新 package.json 除了本地模块,运行

    npm update --save-dev
    

    或者,使用相同的命令来节省时间

    npm update -D
    

    您可以通过

    查看更新的完整详细信息或任何与此相关的命令
    npm help <cmd>
    

    【讨论】:

    • npm update -D 对我不起作用,它没有更新任何内容。
    • 当问题不是如何将更新保存到package.json 而是如何使npm update 更新devDependencies 时,为什么将其标记为正确答案?
    • @onalbi:它没有。这是thread tracking the issue
    • npm update --save-dev 对我来说很好用。使用节点 v12.11.0 和 npm v6.11.3
    • 声明中没有任何效果! (否决)。
    【解决方案5】:

    安装 npm-check-updates (https://www.npmjs.org/package/npm-check-updates),然后跳转到您的项目文件夹并运行:

    npm-check-updates
    

    更新并保存对您的 package.json 文件的更改:

    npm-check-updates -u
    

    【讨论】:

    • ncu 会比npm-check-updates 更好地节省打字。
    • @DimitriKopriwa 有一个 -d 选项仅适用于 devDependencies
    • ncu --dep dev -u; npm 安装
    • 这可能会将 vue 依赖更新到比 vue-cli 支持的最新版本更高的版本。
    【解决方案6】:

    如果您使用的是过时的 npm 版本,则可能是问题所在。所以在执行任何其他命令之前:

    sudo npm install npm -g
    

    或(如果以上不起作用):

    sudo npm update npm -g
    

    然后重新启动控制台(以使更改生效)。 现在您可以检查您的新npm --version,如果它是最新的,请执行:

    npm update
    

    或(如果您愿意):

    npm update --save-dev
    

    【讨论】:

    【解决方案7】:

    对我有用的是像这样安装单独的开发依赖项

    npm install react-test-renderer@15.6.1 --save --only=dev
    

    【讨论】:

      【解决方案8】:

      这些步骤对我有用:

      1. npm install -g npm-check-updates
      2. ncu -u
      3. npm update
      4. npm install

      【讨论】:

      • 为什么我们必须使用第三方的东西来做这种工作?太奇怪了。我无法让 npm update 更改 package.json
      • 3.可能不需要,你可以跳过它。
      【解决方案9】:
      1. npm outdated - 了解什么是过时的概述
      2. npm install -g npm-check-updates - Michael 正确指出
      3. ncu -u - 它会自动 更新package.json 中的所有依赖项(还有dependencies,即它当然不同于devDependencies)版本,而无需重新安装它。它只会改变package.json中的“数字”
      4. npm update - 实际依赖安装
      5. (可选,取决于场景)您可能需要使用标志 --force 或(NPM v7 中的新功能)--legacy-peer-deps 来完成该过程。您可以在What does npm install --legacy-peer-deps do exactly? When is it recommended / What's a potential use case? 上了解这两者之间的区别
      6. (可选)您可以使用ncu -u 对其进行验证,对于正确更新的依赖项,您应该看到文本All dependencies match the latest package versions :)

      【讨论】:

        【解决方案10】:

        我在 https://nodejs.dev/learn/update-all-the-nodejs-dependencies-to-their-latest-version 上找到了答案,这也适用于所有主要版本

        npm install -g npm-check-updates
        ncu -u
        npm update
        

        检查过时的包使用

        npm outdated
        

        【讨论】:

          猜你喜欢
          • 2014-09-26
          • 2018-04-08
          • 1970-01-01
          • 2016-08-28
          • 1970-01-01
          • 2015-05-10
          • 1970-01-01
          • 2020-05-20
          • 2020-06-15
          相关资源
          最近更新 更多