什么是全局安装 devDependencies 的 npm 命令?

Posted

技术标签:

【中文标题】什么是全局安装 devDependencies 的 npm 命令?【英文标题】:What's an npm command to install devDependencies globally? 【发布时间】:2013-08-08 01:41:15 【问题描述】:

比起手动输入npm install -g every single package,我更愿意输入一个简短的命令,例如npm install -g,来设置项目的全局依赖项,例如node-sass 和jshint。有没有一种 npm 惯用的方法来做到这一点?

【问题讨论】:

真的没有。 dependencies 和 akin 用于您打算 require() 的软件包。您打算从终端/shell/等执行的全局包。不在单个项目的范围内。但是,您可以在本地安装它们并仍然执行它们:$ ./node_modules/node-sass ... 对不起。最后一位应该是$ ./node_modules/.bin/node-sass ... 相关:***.com/questions/6480549/… @rha 的指针还是不错的。也就是说,我想可以编写一个简单的脚本,使用jq (?) 提取devDependencies 并循环npm i -g 调用。 【参考方案1】:

您在这里使用了npm install -g <pkg> 错误。 -g 表示,它不是项目依赖项,而是您的全局(PC 范围)。

那些插件不是 devDependencies,而是 CLI 运行器。你想要的是npm install --save-dev every single package 初始化。当您需要再次安装这些依赖项时,您只需运行 npm install 并将 ./node_modules/.bin/jshint 之类的内容添加到您的 package.json 脚本中,以便不依赖 CLI。

【讨论】:

【参考方案2】:

我知道你不应该这样做,但如果你仍然想要它,请更改你的全球位置以确保你有权限。安装 jq(要么下载它,要么 apt install jq)然后:

export NPM_CONFIG_PREFIX=~/npm-global
cat ./package.json | jq '.devDependencies | keys[] as $k | "\($k)@\(.[$k])"' | xargs -t npm install --global 

这将从 devDependencies 部分创建一个包和版本列表,将其通过管道传输到 xargs,并使用它们调用 npm install。

【讨论】:

以上是关于什么是全局安装 devDependencies 的 npm 命令?的主要内容,如果未能解决你的问题,请参考以下文章

在Heroku上安装devDependencies

npm install 不会安装 devDependencies

package.json中devDependencies与dependencies的区别

如何让 Heroku 安装 devDependencies?

package.json 里的 devDependencies 是啥意思

没有 devDependencies 的 NPM 安装、测试、CI