Eslint导入/解析器在同时插入来自不同路径的文件时使用了错误的Webpack配置

时间:2019-11-22 23:52:24

标签: javascript node.js webpack eslint

我的文件结构如下:

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.jsnpx 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

中找出了问题:“如果找到多个Webpack配置,将使用包含解析部分的第一个配置”

0 个答案:

没有答案