[已解决]webpack配置eslint使用airbnb-base报import/no-unresolved错误

发布于 2022-09-11 14:22:45 字数 1498 浏览 34 评论 0

业务背景

  • 利用mpvue开发小程序
  • 使用airbnbeslint规则

遇到的问题

  • 因为在webpackresolve里面配置了aliasextensions
  • 导致在引入模块的时候报错,说是找不到指定模块
  • 但实际上这些模块都是通过npm安装了的

相关代码

  • webpack.base.conf.js
resolve: {
    extensions: [".js", ".vue", ".json"],
    alias: {
      "vue": "mpvue",
      "@": resolve("src")
    },
    ...
  },
module: {
    rules: [
      {
        test: /\.(js|vue)$/,
        loader: "eslint-loader",
        enforce: "pre",
        ...
  • .eslintrc.js
module.exports = {
  parser: 'babel-eslint',
  extends: 'airbnb-base',
  ...
  • main.js
import Vue from 'vue';  // => ESLint: Unable to resolve path to module 'vue'. (import/no-unresolved)
import App from './App'; // App实际是一个.vue文件 => ESLint: Casing of ./App does not match the underlying filesystem. (import/no-unresolved)
...

报错的效果图如下

clipboard.png

我的解决办法

  • 直接在.eslintrc.js里面的'rules`里面禁用这条规则
  • 但是感觉并不优雅啊
  • 这应该是由于在webpack里面配置了别名和路径,而eslint没有适配这个规则导致的

问题

能不能直接通过设置webpack来让eslint知道vue就是一个别名呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

z祗昰~ 2022-09-18 14:22:45

我也遇到这个问题了,用airbnb-base会出现这个问题,但是用完整的airbnb就不会了。

npm install eslint-config-airbnb
山有枢 2022-09-18 14:22:45

我用create-react-app创建的项目,eject后,用这个方法还是有问题

孤者何惧 2022-09-18 14:22:45
npm install eslint-import-resolver-webpack

.eslintrc.js 中配置:

module.exports =  {
 settings: {
    'import/resolver': {
      webpack: {
        config: './path/to/your/webpack.config.js',
      },
    },
  },
 rules: {},
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文