npm package-lock.json中的'dev' true`是什么意思?

pod7payv  于 2023-01-26  发布在  其他
关注(0)|答案(3)|浏览(973)

"dev" truepackage-lock.json文件中的含义是什么?
在我的例子中,当我执行npm操作时,它会自动更新。
我们怎样才能把它去掉呢?

brgchamk

brgchamk1#

因此,回答您的第一个问题,package-lock.json中的"dev": true意味着在production模式下运行时,npm install/npm ci不会安装此依赖项。
将依赖项仅用于标记为"dev": true的本地开发环境,然后在CI中使用--production可能会保存一些构建时间。
来自文档https://docs.npmjs.com/cli/install#description:
默认情况下,npm install将安装package.json中列出的所有依赖模块。
使用--production标志(或者当NODE_ENV环境变量设置为production时),npm将不会安装devDependencies中列出的模块。

2sbarzqh

2sbarzqh2#

我认为这一段试图说明包依赖的dev:赋值为true。

  • 直接开发依赖-〉dev: true
  • 仅具有间接开发依赖性-〉dev: true
  • 直接开发依赖,但也有间接非开发依赖-〉no dev: true

换句话说,开发依赖包一旦间接依赖于非开发包,它就应该是dev: false,这样它就会被包含在构建过程中,这个规则的目的是确保非开发包所需要的包不会有"dev: true"
此外,如果我通过npm install -D <name>安装,那么软件包将作为develop软件包安装,因此不会发生dev: true更改。然而,如果通过npm install <name>安装,这可能会删除许多现有依赖项的"dev: true"属性。
例如,我在项目中运行npm install -D bestzip,结果为:

  • 53个带有“dev”的依赖项:真加的

运行npm install bestzip,结果为:

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

kg7wmglp3#

来自https://docs.npmjs.com/files/package-lock.json的npm文档
如果为True,则此依赖关系是仅顶级模块的开发依赖关系或顶级模块的传递依赖关系。对于既是顶级模块的开发依赖关系又是顶级模块的非开发依赖关系的传递依赖关系的依赖关系,此值为False。

相关问题