Npm - 在 1 个命令行中更新并保存 deps 和 depsDev?

Posted

技术标签:

【中文标题】Npm - 在 1 个命令行中更新并保存 deps 和 depsDev?【英文标题】:Npm - update and save both deps and depsDev in 1 command line? 【发布时间】:2017-03-23 00:13:30 【问题描述】:

我想更新多个 npm 依赖并将它们保存到各自的 package.json 依赖槽中。

我的 package.json:


   "dependencies": 
     "gulp": "^3.0.0"
   ,
   "devDependencies": 
    "gulp-eslint": "^2.8.0"
   

所以我想跑:

$ npm update gulp gulp-eslint

没关系,但是如何分别为 gulp (dep) 和 gulp-eslint (devDep) 保存较新的版本?

我试过了:

$ npm update gulp gulp-eslint --save

但是 gulp-eslint 是 devDependency 实际上必须保存在那里,如何在 1 个命令行中完成所有这些操作?

【问题讨论】:

【参考方案1】:

您还可以通过以下命令使用 Yarn,这是一个新的包管理器:

yarn upgrade

https://yarnpkg.com/en/docs/cli/upgrade

【讨论】:

如果他希望所有包都更新,而不仅仅是其中的几个,这将是一件好事。 即使是那些不应该更新的(例如,没有^)? 是的。我不确定,所以我刚刚通过在我的存储库上运行简单的测试来确认这一点。更新了没有 ^~ 字符的事件包。 很高兴知道。谢谢【参考方案2】:

你可以查看npm-update的官方文档,注意根据你使用的npm版本有不同的规格。

从命令行你可以这样做:

$ npm update --save --dev

注意:如果您使用的是 Linux 或 Mac,请使用 sudo

【讨论】:

当您没有固定权限时,sudo 不应该仅用于全局变量吗?本地模块应该在没有 sudo 的情况下更新,也许我弄错了!? Ubuntu 是我的操作系统,我总是使用 sudo 来处理 npm 包安装 我使用 Lubuntu(Ubuntu 的衍生版本),从不使用 sudo。在某些情况下,--global 操作需要它;但在这些情况下,您应该修复 npm 权限。 docs.npmjs.com/getting-started/fixing-npm-permissions 是的,在 mac 上从未将 sudo 用于本地包,当您没有权限或没有修复它们时,sudo 用于全局;)

以上是关于Npm - 在 1 个命令行中更新并保存 deps 和 depsDev?的主要内容,如果未能解决你的问题,请参考以下文章

npm install xxxx --legacy-peer-deps命令是什么?

怎么在命令行中查看nodejs和npm的版本号

npm 错误!尝试安装 package.json 时 git dep 准备失败

使用 npm 命令时找不到模块“npmlog”错误消息

通过命令创建vue项目(超详细版本)

Grunt-Grunt使用