如何防止安装;devDependencies“;Node.js(package.json)的NPM模块?
我的package.json文件中有这个(缩写版本): 我正在Mac 10.6.8上使用NPM版本1.1.1 当我从项目根目录运行以下命令时,它将同时安装如何防止安装;devDependencies“;Node.js(package.json)的NPM模块?,node.js,npm,Node.js,Npm,我的package.json文件中有这个(缩写版本): 我正在Mac 10.6.8上使用NPM版本1.1.1 当我从项目根目录运行以下命令时,它将同时安装依赖项和devdependency: npm install npm install --dev 我觉得这个命令安装了devDependencies: npm install npm install --dev 如何使npm安装只安装依赖项(因此生产环境只获取这些模块),而类似于npm install--dev的东西会同时安装依赖项和d
依赖项
和devdependency
:
npm install
npm install --dev
我觉得这个命令安装了devDependencies
:
npm install
npm install --dev
如何使npm安装只安装依赖项(因此生产环境只获取这些模块),而类似于
npm install--dev
的东西会同时安装依赖项
和devdependentials
?npm install
命令会在开发环境(默认)的包目录中运行时安装devdependentials
使用npm install--only=prod
(或--only=production
)仅安装依赖项,而不安装devdependency,
,无论节点环境变量的值如何
资料来源:
注意:在npm(2015-08-13)的v3.3.0之前,该选项被称为--production
,即npm安装--production
我也遇到了这个问题!npm安装有点混乱,web帖子不断引入-d/--dev标志,好像有一个显式的“开发”安装模式
npm安装
将同时安装“依赖项”和“开发依赖项”
npm安装--生产将只安装“依赖项”
npm安装--dev
将只安装“devdependences”
需要添加到所选答案中:到目前为止,包目录(包含package.json
)中的npm install
将安装devdependency,而npm install-g
不会安装它们。从包内安装时,npm将安装开发依赖项(如果当前目录中有一个package.json
)。如果它来自另一个位置(npm注册表、git repo、文件系统上的不同位置),则只安装依赖项。使用“npm安装”时,无论模块是“devdependency”还是“devDependencies”,都会在整个应用程序中加载并可用“依赖项”。这一思想的总结:package.json定义为依赖项(任何类型)的所有内容都将安装到node_模块
依赖项/devdependency/optionalDependencies之间的区别在于代码的使用者可以通过npm来安装这些资源
根据文件:
如果有人计划在他们的网站上下载并使用您的模块
程序,那么他们可能不想或不需要下载和构建
您使用的外部测试或文档框架
在这种情况下,最好在列表中列出这些附加项
devdependency散列
只要--dev配置标志
设置。此标志在执行npm链接或
从包的根目录进行npm安装,可以像
任何其他npm配置参数。有关详细信息,请参阅配置(1)
话题
但是,要解决此问题,如果您只想使用npm安装“依赖项”,请使用以下命令:
npm install --production
这可以通过查看添加此过滤器的Git提交(以及提供此功能的一些其他过滤器[如下所列])来确认
npm可使用的替代过滤器:
--save => updates dependencies entries in the {{{json}}} file
--force => force fetching remote entries if they exist on disk
--force-latest => force latest version on conflict
--production => do NOT install project devDependencies
--no-color => do not print colors
@dmarr try using npm install--production我发现,当尝试为包含节点加载项的包安装开发依赖项时,在运行npm install--dev时无法避免构建加载项,即使您只想安装devdependency。因此,我不得不绕开npm:
node -e 'console.log( Object.keys( require( "./package.json" ).devDependencies ) );' | \
sed -e "s/^[^']*'//" -e "s/'.*$//" | \
xargs npm install
或者,更好(更简洁)的是
新的选择是:
npm install --only=prod
如果只想安装devdependency:
npm install --only=dev
如果您已经安装了所有依赖项,并且希望避免再次从NPM下载生产软件包,则只需键入:
npm prune --production
这将从node\u modules
文件夹中删除您的开发依赖项,如果您试图自动化一个两步流程,如
使用开发人员依赖项对我的项目进行网页打包
仅使用生产模块构建Docker映像
在两者之间运行npm prune
将使您不必重新安装所有内容!如果您在2016年阅读了这篇文章,请使用
--only={prod[uction]|dev[elopment]}
参数将导致仅安装devdependency或仅安装非devdependency,而不考虑节点的环境
from:使用npm install packageName--save
这将在依赖项中添加程序包,如果使用npm install packageName--save dev
则它将开发依赖项
npm install packageName--save dev
应用于添加用于开发目的的包。例如添加TDD包(Chai、mocha等)。在开发中使用,而不是在生产中使用。值得一提的是,您可以使用NODE\u ENV
环境变量来实现相同的结果。如果您将节点应用程序(例如Docker)进行容器化,这一点尤其有用
NODE\u ENV=生产npm安装
上述代码将安装除dev依赖项之外的所有依赖项(即devdependency
)
如果需要在Dockerfile
中使用环境变量,可以找到更多信息
环境变量很容易在需要时覆盖(例如,如果您想在Travis CI上运行测试套件)