一尘不染

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

node.js

devDependencies为了运行测试套件并使用锁定生产依存关系,我有一堆需要的东西npm shrinkwrap。问题是,当我运行时npm install,仅安装了生产依赖性,为了进行安装devDependencies,我必须删除npm-shrinkwrap.json并再次运行它。

现在,如果也包含了wrapwrap
devDependencies,则可以将它们安装在生产中,而无需使用它们。当然应该有一些命令行参数来强制仅安装常规依赖项?


阅读 322

收藏
2020-07-07

共1个答案

一尘不染

2016年9月:

正如其他人也提到的那样,从npm
v3.10.8
开始,人们已经做出了巨大的努力来增强收缩包装功能。

由于,这将有可能使您的devDependencies锁定,而只安装生产依赖关系:

npm shrinkwrap --dev
npm install --only=prod

2013年答案:

NPM文档所述

由于npm shrinkwrap旨在锁定您的依赖性以供生产使用,devDependencies因此除非您--dev在运行npmrinkwrap时显式设置该标志,否则不会包括在内。如果未安装devDependencies,则npm将显示警告。如果您希望默认情况下将它们与模块一起安装,请考虑将它们添加到依赖项中。

基本上,或者您锁定所有部门,或者仅锁定生产部门。

甚至无法运行,npm install --dev甚至npm install --force可以超越拆封功能。

2020-07-07