npm在不同的深度级别安装依赖项

时间:2017-06-29 07:09:33

标签: npm

我有一个“eslint-config”模块作为github repo发布。它有这样的依赖:

  "dependencies": {
    "babel-eslint": "7.2.3",
    "babel-runtime": "^6.0.0",
    "eslint": "3.19.0",
    "eslint-config-airbnb": "15.0.1",
    "eslint-plugin-import": "2.3.0",
    "eslint-plugin-jsx-a11y": "5.0.3",
    "eslint-plugin-react": "7.0.1"
  },

在另一个空项目中“estest”我将此模块安装为单个dev依赖项:

npm i -D github:MyTeam/eslint-config

该命令产生输出:

npm WARN eslint-config-airbnb@15.0.1 requires a peer of eslint@^3.19.0 but none was installed.
npm WARN eslint-plugin-import@2.3.0 requires a peer of eslint@2.x - 3.x but none was installed.
npm WARN eslint-plugin-jsx-a11y@5.0.3 requires a peer of eslint@^2.10.2 || 3.x but none was installed.
npm WARN eslint-plugin-react@7.0.1 requires a peer of eslint@^3.0.0 but none was installed.
npm WARN eslint-config-airbnb-base@11.2.0 requires a peer of eslint@^3.19.0 but none was installed.

+ eslint-config@1.0.0
added 203 packages in 13.898s

它的行为类似eslint模块未安装。 如果我查看estest/node_modules内部,我会看到结构:

node_modules
  eslint-config // <-- this is my module
    node_modules
      eslint // <-- it has only one dep installed inside
  // all other `eslint-config` deps are flat-installed into root:
  babel-eslint
  eslint-config-airbnb 
  eslint-plugin-import
  eslint-plugin-jsx-a11y
  eslint-plugin-react
  ...

因此除了eslint-config之外,所有node_modules个依赖项都已平面安装到根eslint中。因此,他们中的一些人抱怨同伴依赖性缺失。

并且npm ls命令将eslint显示为未完成的对等dep:

└─┬ eslint-config@1.0.0 
  ├─┬ babel-eslint@7.2.3
  ├─┬ UNMET PEER DEPENDENCY eslint@3.19.0
  ├─┬ eslint-config-airbnb@15.0.1
  │ ├── UNMET PEER DEPENDENCY eslint@^3.19.0
  │ └── eslint-config-airbnb-base@11.2.0
  ├─┬ eslint-plugin-import@2.3.0
  │ ├─┬ eslint-import-resolver-node@0.2.3
  │ ├─┬ eslint-module-utils@2.1.1
  ├─┬ eslint-plugin-jsx-a11y@5.0.3
  └─┬ eslint-plugin-react@7.0.1

我希望能够只安装eslint-config依赖项,而不是单独安装eslint。怎么做?

0 个答案:

没有答案