【问题标题】:How can I update all npm packages/modules at once?如何一次更新所有 npm 包/模块?
【发布时间】:2016-02-06 18:58:46
【问题描述】:

我正在努力寻找一种方法来一次更新所有 npm 包,一些文章建议应该编辑 package.json 文件,其中所有版本号都需要更改为 * 因此强制节点获取最新版本,但其他人则认为这种方法并不好。理想情况下,我想为此找到一个命令行选项。

【问题讨论】:

标签: node.js command-line module npm packages


【解决方案1】:

npm outdated 是您要运行以查找所有非最新软件包的命令。您可以将npm output -json 的输出通过管道传输到一个文件中,然后遍历 JSON 以安装最新版本的软件包。

【讨论】:

    【解决方案2】:

    你可以试试这些单线。

    更新所有依赖项:

    $ npm out --long --parseable |grep 'dependencies$' |cut -d: -f4 |xargs npm install --save
    

    更新所有 devDependencies:

    $ npm out --long --parseable |grep 'devDependencies$' |cut -d: -f4 |xargs npm install --save-dev
    

    请记住,这通常不是一个好主意,因为您可能需要在升级包的过程中更改某些内容。如果您的项目有许多依赖项,最好一个一个或以小组为单位更新它们并经常运行测试。

    【讨论】:

      【解决方案3】:

      一个简单的步骤:

      $ npm i -g npm-check-updates && ncu -a && npm i

      这会将package.json 中的所有包设置为最新版本。

      【讨论】:

        【解决方案4】:

        对于单个模块,您可以尝试 npm install --save module@latest 这也会改变 package.json。您可以在 nodejs 中编写一个 shell 脚本或脚本来遍历 package.json 并更新所有模块。

        【讨论】:

          【解决方案5】:

          所有模块的递归更新都可以使用npm update

          • 对于本地安装的模块:npm update --depth 9999 --dev
          • 对于全局安装的模块:npm update --depth 9999 --dev -g

          一个即用型 NPM 脚本,用于更新所有 Node.js 模块及其所有依赖项:
          How to update all Node.js modules automatically?

          【讨论】:

            猜你喜欢
            • 2017-04-26
            • 2017-05-15
            • 2015-02-06
            • 2013-02-09
            • 2016-03-16
            • 2021-07-05
            • 2023-04-10
            • 2021-11-03
            • 2013-03-20
            相关资源
            最近更新 更多