如何收缩包装devDependencies,但除非必要,否则不安装它们?

Flu*_*ffy 41 node.js npm

我有一堆devDependencies需要运行测试套件并锁定生产依赖关系npm shrinkwrap.问题是,当我运行时npm install,只安装了生产依赖项,为了安装devDependencies,我必须删除npm-shrinkwrap.json并再次运行它.

现在,如果包含shrinkwrap devDependencies,它们也会在生产中安装,而不需要它们.当然应该有一些命令行参数来强制只安装普通的依赖项?

gus*_*nke 49

2016年9月:

正如其他人所提到的那样,从npm v3.10.8开始,有一些巨大的努力来增强收缩包装功能.

多亏了这一点,devDependencies在仅安装生产依赖项时,可以保持锁定状态:

npm shrinkwrap --dev
npm install --only=prod
Run Code Online (Sandbox Code Playgroud)

2013回答:

NPM文档中所述:

由于npm shrinkwrap旨在锁定生产用依赖项,devDependencies因此除非--dev在运行npm shrinkwrap时显式设置标志,否则不会包含该依赖项.如果devDependencies排除了安装,则npm将打印警告.如果您希望默认情况下将它们与模块一起安装,请考虑将它们添加到依赖项中.

基本上,或者你锁定所有deps,或只锁定生产deps.

甚至没有运行npm install --devnpm install --force可以超越收缩包裹功能.

  • 所以基本上没有办法做我想要的事情? (4认同)