我有一个“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
。怎么做?