npm install是否排除dev依赖项?

6
当我在一个Node.js项目中运行“npm install”时,npm不仅安装依赖项,还包括开发依赖项。如果我不想安装开发依赖项,我可以运行“npm install --production”。
问题1:如果我没有提供“--production”:是否也会安装依赖项的开发依赖项,还是只安装它们的实际依赖项?
现在,假设我正在一个Node.js项目中并安装一个新的依赖项,比如:
npm install foo

这会安装foo所依赖的软件包。

问题2:那开发依赖呢?它们也会被安装吗,还是被跳过了?


你试过这个吗? - Callum Linington
3个回答

6

您的问题的答案:

  1. 是的,在npm install中将安装dev依赖项,仅在将NODE_ENV设置为production时才不会安装dev依赖项。
  2. 不会安装外部模块的开发依赖项,请参见此处

哦,我习惯使用 prodNODE_ENV :( - Mon

2
当您运行npm install时,默认情况下会安装依赖项和devDependency依赖项。因为如果有人要开发一个包,我们会从git下载它,然后进入根文件夹并运行npm install。
npm install 

所以你应该也会期望有devDependencies。

npm install "$package"

默认情况下,不会安装devDependencies。但是如果你确实想在这种情况下安装开发包,可以将dev配置选项设置为true:

npm install "$package" --dev

0

Node应用程序使用多种方法来保持依赖版本更新,但需要考虑多种依赖类型。 依赖项在node应用程序的根目录中的package.json文件中找到。 我将介绍不同的依赖类型并列出一些定义特征或特点:

Dependencies(依赖项): 这些是在简单对象中指定的,将包名称映射到版本范围。 版本范围是一个字符串,其中有一个或多个空格分隔符描述符。 依赖项也可以通过tarball或git URL进行标识。

从包含package.json的目录中进行npm install 在任何其他目录中进行npm install $package 依赖项是必需的运行时 传递安装:如果A需要B,而B需要C,则会安装C,否则B可能无法工作,A也是如此。 devDependencies(开发依赖项): 如果有人计划下载和在其程序中使用模块,则他们可能不想或不需要下载和构建您使用的外部测试或文档框架。 在这种情况下,最好将这些附加项映射到devDependencies对象中,在用户安装软件包时不会安装它们,除非明确传递--dev。 这些通常在从软件包的根目录进行传统的npm install时安装。

在包含 package.json 的目录上运行 npm install,除非开发人员传递 --production 标志。
在任何其他目录上运行 npm install "$package" 时不会安装,除非您使用 --dev 选项。 不会被传递安装 其他依赖类型: 这些不常用,但可能有用。

peerDependencies optionalDependencies


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接