"dev" true在package-lock.json文件中的含义是什么?在我的例子中,当我执行npm操作时,它会自动更新。我们怎样才能把它去掉呢?
"dev" true
package-lock.json
npm
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中列出的模块。
"dev": true
production
npm install
npm ci
--production
package.json
NODE_ENV
devDependencies
2sbarzqh2#
我认为这一段试图说明包依赖的dev:赋值为true。
dev: true
换句话说,开发依赖包一旦间接依赖于非开发包,它就应该是dev: false,这样它就会被包含在构建过程中,这个规则的目的是确保非开发包所需要的包不会有"dev: true"。此外,如果我通过npm install -D <name>安装,那么软件包将作为develop软件包安装,因此不会发生dev: true更改。然而,如果通过npm install <name>安装,这可能会删除许多现有依赖项的"dev: true"属性。例如,我在项目中运行npm install -D bestzip,结果为:
dev: false
"dev: true"
npm install -D <name>
npm install <name>
npm install -D bestzip
运行npm install bestzip,结果为:
npm install bestzip
kg7wmglp3#
来自https://docs.npmjs.com/files/package-lock.json的npm文档如果为True,则此依赖关系是仅顶级模块的开发依赖关系或顶级模块的传递依赖关系。对于既是顶级模块的开发依赖关系又是顶级模块的非开发依赖关系的传递依赖关系的依赖关系,此值为False。
3条答案
按热度按时间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
中列出的模块。2sbarzqh2#
我认为这一段试图说明包依赖的dev:赋值为true。
dev: true
dev: true
dev: true
换句话说,开发依赖包一旦间接依赖于非开发包,它就应该是
dev: false
,这样它就会被包含在构建过程中,这个规则的目的是确保非开发包所需要的包不会有"dev: true"
。此外,如果我通过
npm install -D <name>
安装,那么软件包将作为develop软件包安装,因此不会发生dev: true
更改。然而,如果通过npm install <name>
安装,这可能会删除许多现有依赖项的"dev: true"
属性。例如,我在项目中运行
npm install -D bestzip
,结果为:运行
npm install bestzip
,结果为:kg7wmglp3#
来自https://docs.npmjs.com/files/package-lock.json的npm文档
如果为True,则此依赖关系是仅顶级模块的开发依赖关系或顶级模块的传递依赖关系。对于既是顶级模块的开发依赖关系又是顶级模块的非开发依赖关系的传递依赖关系的依赖关系,此值为False。