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

npm在不同的深度级别安装依赖项,npm,Npm,我有一个作为github repo发布的“eslint config”模块。它具有以下依赖性: "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-

我有一个作为github repo发布的“eslint config”模块。它具有以下依赖性:

  "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”中,我将此模块作为单个开发人员依赖项安装:

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\u模块中查看,我会看到该结构:

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
依赖项,而不单独安装
eslint
。如何做到这一点?

我认为将它们同时添加为peerDeps和dep会将包向上移动,但我只是遇到了一个没有(并且不是任何其他内容的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