什么是全局安装 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 命令?的主要内容,如果未能解决你的问题,请参考以下文章
npm install 不会安装 devDependencies
package.json中devDependencies与dependencies的区别
如何让 Heroku 安装 devDependencies?