NodeJS 我的依赖项/devDependencies 的 devDependencies 没有被安装或列出"/>
NodeJS 我的依赖项/devDependencies 的 devDependencies 没有被安装或列出
在我的项目中,我的
devDependencies
的dependencies
,或者我的devDependencies
,在我运行时没有被安装
npm 安装
或
npm 安装 --include=dev
在很多方面这似乎是明智的。但是当
devDependency
不可用时,其中一个依赖项可能会错误地失败。
这意味着工作吗?
npm
确实安装子dependencies
它似乎忽略了devDependencies
.
我的一个依赖的例子
package.json
{
"name": "test-helper-chai",
"version": "1.0.11",
"description": "chai extended with specific assertions",
"license": "MIT",
"main": "dist/index.js",
"devMain": "src/index.js",
"engines": {
"node": ">=14"
},
"devDependencies": {
"chai": "^4.3.4",
"eslint": "^8.24.0",
"prettier": "^2.7.1",
"sinon": "^9.2.4"
},
"dependencies": {
"check-error": "^1.0.2",
"lodash": "^4.17.21"
},
"scripts": {
"build": "yarn build:src",
"build:src": "build -dest \"./dist\" -src \"./src\" -js -ts -maps",
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
"test:browser": "test --integration --unit --runner karma",
"test:integration": "test --integration --runner mocha",
"test:style": "eslint ./src/**/*.*",
"test:unit": "test --unit --runner jest"
}
}
这里
chai
没有被安装但是check-error
是。
回答如下:
这是预期的行为。
当您在与 package.json 文件相同的目录中运行
npm install
时,npm 将为该 package.json 安装 devDependencies 和依赖项。假设 package.json 是正在开发的包。
嵌套依赖的工作方式不同。只会安装嵌套依赖项的常规依赖项。这是为了减少膨胀。想象一下,如果每个包都将其所有构建工具、开发包和 linters 连同其生产代码一起运送!
您开发的包值得牢记。如果生产包运行需要依赖,你应该在
dependencies
中安装它。如果只需要构建/开发,它应该放在 devDependencies 中。
更多推荐
NodeJS 我的依赖项/devDependencies 的 devDependencies 没有被安装或列出
发布评论