Eslint 8.0.1配置jest时出现未知环境键、插件加载报错如何解决?
解决步骤
版本兼容性修复
ESLint 8.x要求配套使用v27.0.0及以上版本的eslint-plugin-jest,版本不匹配是触发两类报错的核心原因:
- 首先卸载已废弃的jest相关eslint配置包(如果存在):
npm uninstall eslint-config-jest --save-dev - 升级
eslint-plugin-jest到兼容版本:npm install eslint-plugin-jest@^28.0.0 --save-dev,可根据实际情况选择最新兼容版本
ESLint配置修正
调整./eslint/config.js配置内容:
- 全局启用jest规则的配置示例(原有其他配置保留即可):
module.exports = { // 原有其他配置(parser、root等)保留 env: { // 原有其他环境配置(browser、node等)保留 'jest/globals': true }, plugins: [ // 原有其他插件(@typescript-eslint、react等)保留 'jest' ], extends: [ // 原有其他扩展配置(next/core-web-vitals、plugin:@typescript-eslint/recommended等)保留 'plugin:jest/recommended' ] }
- 若仅需要对测试文件启用jest规则,可将上述jest相关配置放到overrides字段中,避免全局规则污染:
module.exports = { // 原有其他配置保留 overrides: [ { files: ['**/__tests__/**/*', '**/*.test.{ts,tsx,js,jsx}'], env: { 'jest/globals': true }, plugins: ['jest'], extends: ['plugin:jest/recommended'] } ] }
缓存清理重试
- 删除node_modules目录和对应包管理器lock文件(package-lock.json/pnpm-lock.yaml/yarn.lock)
- 重新执行依赖安装命令,执行
npx eslint --clear-cache清理ESLint缓存后再运行lint命令验证
内容的提问来源于stack exchange,提问作者dsudo
相关产品推荐
相关产品推荐

