代码之家  ›  专栏  ›  技术社区  ›  Mustafa bw

包锁中的“dev”true是什么。json for?

  •  70
  • Mustafa bw  · 技术社区  · 7 年前

    什么是 "dev" true 中的平均值 package-lock.json 文件

    在我的情况下,当我执行 npm 操作。

    我们如何删除它?

    3 回复  |  直到 6 年前
        1
  •  26
  •   gordey4doronin    5 年前

    所以回答你的第一个问题, "dev": true 在里面 package-lock.json 表示此依赖项不会由安装 npm install / npm ci 磨合时 production 模式

    具有仅用于标记为的本地开发环境的依赖项 “dev”:真 然后使用 --production 在CI中,可能会节省一些构建时间。

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

    默认情况下, npm安装 将安装以下列出的所有模块 中的依赖项 package.json

    使用 --生产 标志(或当 NODE_ENV 环境 变量设置为 生产 ),npm不会安装列出的模块 在里面 devDependencies

        2
  •  9
  •   Houcheng    6 年前

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

    • 直接开发依赖关系->dev:正确
    • 仅间接依赖于开发->dev:正确
    • 然而,直接依赖于开发 它还具有间接的非开发依赖性->否“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属性
        3
  •  8
  •   Paul Roub jim    7 年前

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

    如果为true,则此依赖关系要么是仅顶层模块的开发依赖关系,要么是顶层模块的可传递依赖关系。对于同时是顶层开发依赖项和顶层非开发依赖项的可传递依赖项的依赖项,这是错误的。