[已解决]webpack配置eslint使用airbnb-base报import/no-unresolved错误
业务背景
- 利用
mpvue
开发小程序 - 使用
airbnb
的eslint
规则
遇到的问题
- 因为在
webpack
的resolve
里面配置了alias
和extensions
- 导致在引入模块的时候报错,说是找不到指定模块
- 但实际上这些模块都是通过
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)
...
报错的效果图如下
我的解决办法
- 直接在
.eslintrc.js
里面的'rules`里面禁用这条规则 - 但是感觉并不优雅啊
- 这应该是由于在webpack里面配置了别名和路径,而eslint没有适配这个规则导致的
问题
能不能直接通过设置webpack来让eslint知道vue就是一个别名呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我也遇到这个问题了,用airbnb-base会出现这个问题,但是用完整的airbnb就不会了。
我用create-react-app创建的项目,eject后,用这个方法还是有问题
在
.eslintrc.js
中配置: