我的文件结构如下:
client/
- .eslintrc
- file.js
server/
- .eslintrc
- file.js
.eslintrc
webpack.client.js
webpack.server.js
client/.eslintrc
如下:
module.exports = {
env: {
browser: true,
node: false,
},
settings: {
'import/resolver': {
webpack: {
config: 'webpack.client.js',
},
},
},
};
和server/.eslintrc
如下:
module.exports = {
env: {
browser: false,
node: node,
},
settings: {
'import/resolver': {
webpack: {
config: 'webpack.server.js',
},
},
},
};
webpack.client.js
具有:
resolve: {
modules: [path.resolve('./client'), path.resolve('./node_modules')],
},
和webpack.server.js
具有:
resolve: {
modules: [path.resolve('./server'), path.resolve('./node_modules')],
},
如果我运行npx eslint client/file.js
或npx eslint server/file.js
,它们都会通过。但是,如果我运行npx eslint client/file.js server/file.js
,则会得到error Unable to resolve path to module 'anotherfile' import/no-unresolved
。
我非常确定这是因为Eslint使用webpack.client.js
作为两个文件的解析器。但是,应该为webpack.client.js
使用client/file.js
,为webpack.server.js
使用server/file.js
。
这是一个问题,因为我使用的是lint-staged,它将已更改文件的列表传递给Eslint。如果我在同一提交中同时更改了client/
和server/
中的某些内容,则Eslint失败。有办法解决这个问题吗?
编辑:
我从eslint-import-resolver-webpack