首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >npm安装是否排除了开发依赖项?

npm安装是否排除了开发依赖项?
EN

Stack Overflow用户
提问于 2016-08-09 12:50:09
回答 3查看 4.8K关注 0票数 5

当我在Node.js项目中运行npm install时,npm同时安装依赖项和dev依赖项。如果我不想安装dev依赖项,我可以运行npm install --production

问题1:如果我不提供--production:是否也安装了依赖项的dev依赖项,还是只安装了它们的实际依赖项?

现在,如果我在一个Node.js项目中并安装了一个新的依赖项,那么该怎么办,比如:

代码语言:javascript
运行
复制
npm install foo

当然,这会安装foo的依赖项。

问题2:但是它的开发依赖关系呢?它们是也安装好了,还是跳过了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-09 13:15:41

默认情况下,运行npm时,还会安装依赖项和devDependency依赖项。因为如果有一次要开发一个包,我们会从git下载它,然后转到根文件夹并运行。

代码语言:javascript
运行
复制
npm install 

所以你会希望有devDependencies。

代码语言:javascript
运行
复制
npm install "$package"

默认情况下不会安装devDependencies。但是,如果您确实希望安装开发包,则可以将dev config选项设置为true:

代码语言:javascript
运行
复制
npm install "$package" --dev
票数 2
EN

Stack Overflow用户

发布于 2016-08-09 13:04:20

回答您的问题:

  1. 是的,只有在将npm install设置为production时才会以安装dev依赖项的方式安装dev依赖项
  2. 不安装外部模块的开发依赖项(请参阅这里 )
票数 6
EN

Stack Overflow用户

发布于 2018-10-01 15:09:32

节点应用程序使用多个方法来维护最新的依赖版本控制,但是需要考虑多个依赖类型。依赖项在package.json文件中的节点应用程序根目录中找到。我将介绍不同的依赖类型,并列出一些定义特性或特性:

依赖项:这些都是在一个简单的对象中指定的,该对象将包名映射到一个版本范围。版本范围是具有一个或多个空格分隔描述符的字符串。依赖关系也可以用tarball或git URL标识。

从包含任何其他目录依赖项的package.json npm安装$package的目录中安装npm需要临时运行:如果A需要B,B需要C。则C被安装,否则B无法工作。如果有人计划在他们的程序中下载和使用模块,那么他们可能不想或不需要下载和构建您使用的外部测试或文档框架。在本例中,最好将这些附加项映射到devDependencies对象中,除非专门传递-dev,否则在用户安装包时不安装该对象。这些通常是在从包的根执行传统npm安装时安装的。

npm安装在包含package.json的目录上,除非开发人员传递-产品标志。

不是安装在npm上,而是在任何其他目录上安装"$package“,除非您给它--dev选项,否则不会临时安装其他依赖类型:--这些都不常用,但可能有用途。

peerDependencies optionalDependencies

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38851258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档