什么" dev" true表示在package-lock.json文件中?

时间:2018-04-13 04:49:20

标签: npm package.json

" dev" true表示在package-lock.json文件中?

在我的情况下,当我执行npm操作时它会自动更新。

我们如何删除它?

3 个答案:

答案 0 :(得分:2)

因此,回答第一个问题,"dev": true中的package-lock.json意味着在npm install模式下运行时,npm ci / production不会安装此依赖项。

仅将依赖项用于标记为"dev": true的本地开发环境,然后在CI中使用--production可以节省一些构建时间。

摘自文档https://docs.npmjs.com/cli/install#description

默认情况下,npm install将安装所有列为 package.json中的依赖项。

带有--production标志(或在NODE_ENV环境中 变量设置为production),npm将不会安装列出的模块 在devDependencies中。

答案 1 :(得分:0)

摘自https://docs.npmjs.com/files/package-lock.json上的npm文档

  

如果为true,则此依赖项仅是顶层模块的开发依赖项,或者是一个传递性依赖项。对于既是顶层的开发依赖关系又是顶层的非开发依赖关系的传递依赖关系的依赖关系,都是错误的。

答案 2 :(得分:0)

我认为本段试图说明如何分配程序包依赖项的dev:true。

  • 直接开发依赖-> dev:true
  • 仅具有间接开发依赖项-> dev:true
  • 但是直接依赖开发 它还具有间接的非开发依赖关系->没有“ dev:true”

换句话说,一旦开发依赖包被非开发包间接依赖,则它应为dev:false,因此将被包含在构建过​​程中。此规则的目的是确保非开发软件包所需的软件包不会具有“ dev:true”。

此外,如果通过“ npm install -D”安装,则该软件包将作为开发软件包安装,因此不会发生“ dev:true”更改。但是,如果通过“ npm install”安装,则可能会删除许多现有的软件包依赖项的“ dev:true”属性。

例如,我在项目中运行“ npm install -D bestzip”,结果是:

  • 53个带“ dev”的依赖项:已添加true

运行“ npm install bestzip”,结果是:

  • 53个不带“ dev”的依赖项:已添加true
  • 43个现有依赖项的“ dev”:true属性已删除