问题1:如果我没有提供“--production”:是否也会安装依赖项的开发依赖项,还是只安装它们的实际依赖项?
现在,假设我正在一个Node.js项目中并安装一个新的依赖项,比如:
npm install foo
这会安装foo
所依赖的软件包。
问题2:那开发依赖呢?它们也会被安装吗,还是被跳过了?
npm install foo
这会安装foo
所依赖的软件包。
问题2:那开发依赖呢?它们也会被安装吗,还是被跳过了?
您的问题的答案:
npm install
中将安装dev依赖项,仅在将NODE_ENV
设置为production
时才不会安装dev依赖项。prod
的 NODE_ENV
:( - Monnpm install
所以你应该也会期望有devDependencies。
npm install "$package"
默认情况下,不会安装devDependencies。但是如果你确实想在这种情况下安装开发包,可以将dev配置选项设置为true:
npm install "$package" --dev
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