Eslint Unable to resolve path to module ‘@‘

在webapck + eslint的项目中,若给webpack配置了alias,但eslint未能正确配置路径别名,则会报错。

// webpack.config.js
  resolve: {
    // 配置别名,在项目中可缩减引用路径
    alias: {
      '@': path.resolve('app/web')
    }
  },

如上,在vue-cli初始化的项目中,已经为你配置好了,但若是自己搭建的项目,则可能出现标题中的错误,因为eslint并不会自动读取webpack中的配置。

此时需要安装以下eslint的插件:

并在.eslintrc.js中添加如下的配置

// 务必注意路径的配置。
  settings: {
    'import/resolver': {
      webpack: {
        config: path.join(__dirname, './build/webpack.base.config.js')
      }
    }
  }

以上,即eslint会读取webpack的配置,因此便不会报错。

总结一下依赖的顺序

 ==> vscode eslint插件
 ==> eslint
 ==> eslint-plugin-import
 ==> eslint-import-resolver-webpack
 ==> 修改eslintrc配置文件
### 解决 `npm ERESOLVE unable to resolve dependency tree` 错误 当运行 `npm install` 命令时,如果遇到 `ERESOLVE unable to resolve dependency tree` 的错误提示,通常是因为项目中的某些依赖项存在版本冲突或不兼容的情况。以下是几种常见的解决方案: #### 方法一:强制解析依赖树 可以尝试通过添加参数 `--force` 或者 `--legacy-peer-deps` 来忽略这些冲突并继续安装依赖。 ```bash npm install --force ``` 或者, ```bash npm install --legacy-peer-deps ``` 这两种方式都可以绕过严格的依赖校验机制,但需要注意的是,这种方式可能会引入潜在的不稳定因素[^1]。 #### 方法二:更新或降级 Node.js 和 NPM 版本 有时,Node.js 和 NPM 的高版本可能导致一些旧项目的依赖无法正确解析。可以通过以下命令查看当前使用的 Node.js 和 NPM 版本: ```bash node -v npm -v ``` 如果发现版本过高,可以选择安装较低版本的 Node.js 和 NPM。例如,使用 Homebrew 安装特定版本的 Node.js: ```bash brew install node@12 ``` 之后重新设置环境变量以切换到指定版本的 Node.js,并确认其生效: ```bash export PATH="/usr/local/opt/node@12/bin:$PATH" node -v ``` 对于 Vue CLI 项目来说,推荐使用 Node.js v12 LTS 及对应的 NPM 版本来减少兼容性问题[^3]。 #### 方法三:手动调整 package.json 中的依赖版本 仔细阅读错误日志,定位具体的依赖冲突位置。比如,在引用中提到的一个例子是 `stylelint` 和 `stylelint-config-prettier` 存在版本范围上的矛盾[^2]。此时可以在 `package.json` 文件里显式声明合适的版本号来解决问题。 假设问题是由于 ESLint 插件引起的,则可修改如下字段: ```json { "devDependencies": { "eslint": "^7.32.0", "vue-cli-plugin-eslint": "^2.0.0" } } ``` 完成编辑后再执行安装操作即可。 #### 方法四:清理缓存重试 有时候本地缓存的数据也可能引发此类异常现象,因此建议先清除NPM缓存再试试看效果如何: ```bash npm cache clean --force rm -rf node_modules/ npm install ``` 以上就是针对此类型错误的一些处理办法总结[^1][^2]. ```javascript // 示例代码片段展示如何配置 .eslintrc.js 配合Vue开发环境下的Eslint插件 module.exports = { root: true, env: { node: true }, extends: [ 'plugin:vue/essential', '@vue/eslint-config-airbnb' ], parserOptions: { ecmaVersion: 2020 }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' } }; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值