NodeJS我的依赖项的devDependencies/devDependencies未安装或未列出

rhfm7lfc  于 2023-04-29  发布在  Node.js
关注(0)|答案(1)|浏览(195)

在我的项目中,运行dependenciesdevDependencies,或者实际上是devDependencies时,没有安装
npm install

npm install --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

bxgwgixi

bxgwgixi1#

这是预期行为。
当您在与包相同的目录中运行npm install时。json文件,npm将同时安装devDependencies和该包的依赖。json。假定该包。JSON是正在开发的包。
嵌套依赖项的工作方式不同。只有嵌套依赖项的常规依赖项才会被安装。这是为了减少肿胀。想象一下,如果每个包都附带了所有的构建工具、开发包和linter沿着它们的生产代码!
对于您开发的软件包,值得牢记这一点。如果需要依赖项才能运行生产包,则应将其安装在dependencies中。如果它只用于构建/开发,它应该放在devDependencies中。

相关问题