返回

解决 Jest 意外令牌错误:无法解析导入的文件,快速上手指南

javascript

如何解决 Jest 意外令牌错误:无法解析导入的文件

引言

在使用 Jest 进行测试时,你可能遇到过“Jest encountered an unexpected token”错误。这个错误表示 Jest 无法解析你尝试导入的文件。本文将指导你解决这个问题,涵盖以下解决方案:

更新依赖项

确保 Jest 和 babel-jest 依赖项是最新的:

npm install --save-dev jest babel-jest

配置 Babel-Jest

配置 Babel-Jest 以处理你想要导入的文件类型,在你的 .babelrc.babel-jest.config.js 文件中添加:

{
  "plugins": [
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
  ]
}

配置 Webpack

如果你使用 Webpack 构建,还需要配置 Webpack 以处理文件类型,在你的 Webpack 配置中添加:

{
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(png|jpg|gif)$/,
        use: ['file-loader']
      }
    ]
  }
}

使用 ESLint 进行文件类型检查

使用 ESLint 检查文件类型并确保只导入受支持的文件,在你的 .eslintrc 文件中添加:

{
  "rules": {
    "import/no-unresolved": ["error", { "commonjs": true, "amd": true }],
    "import/extensions": ["error", "always", { "ignorePackages": true }]
  }
}

排除某些文件类型

最后,你可以在 Jest 的 transformIgnorePatterns 配置中排除某些文件类型,在你的 Jest 配置中添加:

{
  "transformIgnorePatterns": [
    "/node_modules/(?!d3-(array|format|geo))"
  ]
}

结论

通过遵循这些步骤,你应该能够解决 Jest 中的“Unexpected Token”错误。通过更新依赖项、配置 Babel-Jest 和 Webpack、使用 ESLint 进行文件类型检查以及排除某些文件类型,你可以确保 Jest 能够解析所有导入的文件。

常见问题解答

  1. 为什么会发生“Unexpected Token”错误?

此错误表示 Jest 无法解析你尝试导入的文件,这可能是由于该文件不符合 Jest 支持的格式所致。

  1. 为什么需要配置 Babel-Jest 和 Webpack?

Babel-Jest 允许你转换不支持的语法,而 Webpack 处理文件加载和转换。

  1. 如何使用 ESLint 检查文件类型?

ESLint 可以通过其 import/no-unresolvedimport/extensions 规则来检查文件类型。

  1. 我可以排除哪些文件类型?

你可以排除任何不支持 Jest 的文件类型,例如 CSS、图像和外部库。

  1. 解决“Unexpected Token”错误后还有什么其他建议?

确保保持你的依赖项更新,并定期检查 Jest 配置和文件类型规则,以避免将来的错误。