在 WebStorm 中使用 Webpack 别名导致 ESLint 错误导入别名

Posted

技术标签:

【中文标题】在 WebStorm 中使用 Webpack 别名导致 ESLint 错误导入别名【英文标题】:Using Webpack alias cause to ESLint error on import alias in WebStorm 【发布时间】:2019-03-24 20:07:29 【问题描述】:

我通过以下代码设置别名 Webpack config:

module: 
...
resolve: 
  alias: 
    utils: path.resolve(__dirname, 'src/utils/'),
    '@SharedBlocks': path.resolve(__dirname, 'src/application/shared-blocks'),
  ,
  extensions: ['.js', '.json', '.jsx', '.scss'],
,
...

然后我在 WebStorm 中发现 ESLint 错误,如下所示:

当然,ESLint 无法解析'@SharedBlocks/explorer',所以我在.eslint.js 文件中添加了一个import/resolver 来配置它:

settings: 
  "import/resolver": 
    webpack: 
      config: "webpack.template.js",
    
  
,

现在在 VSCode 等所有编辑器中一切正常。就在 WebStorm 我在下面看到:

这太奇怪了,因为即使运行 eslint . 命令也不会返回 ESLint 规则错误,但只是在 WebStorm 中我看到 import 的红色下划线也可以正常工作,但 import 显示红色下划线。奇怪的是VSCode没有任何问题并且运行良好

我该如何解决?

【问题讨论】:

【参考方案1】:

no-extraneous-dependencies ESLint 规则不考虑 EsLint 解析器,请参阅 https://github.com/benmosher/eslint-plugin-import/issues/496。我不确定为什么只能在 WebStorm 中看到该错误。我建议就此联系支持人员

【讨论】:

感谢您的回答并试图帮助我。但我之前读过这个link。它对我和你的回答也没有帮助。绝对问题出在ESlint 而不是WebStorm,因此联系支持不是一个好的决定。 no-extraneous-dependencies 规则何时是 off 考虑 ESlint 解析器。 我怀疑"no-extraneous-dependencies": "off" 是一个真实的答案,但是当我在ESlint 规则中使用它时,红色下划线消失了。这是一个好的解决方案吗?这是正确的方法吗?

以上是关于在 WebStorm 中使用 Webpack 别名导致 ESLint 错误导入别名的主要内容,如果未能解决你的问题,请参考以下文章

css 中使用webpack别名(alias)

WebPack+WebStorm调试

在 mocha 测试中使用 webpack 别名

消息 | WebStorm 2017.2 发布:更好地支持 Webpack

webstorm+react+webpack-demo

React+Webpack+Webstorm开发环境搭建