应该是 Jest “SyntaxError Unexpected token import”
最简单的解决方案。
背景
React 的 SPA 项目,使用 And Design 作为 UI 框架。 使用 Jest + Enzyme 进行单体测试。
Antd 使用 babel-plugin-import
按需加载。
.babelrc
{
"presets": ["env", "react", "stage-0"],
"plugins": [
[
"import",
{
"libraryName": "antd",
"libraryDirectory": "es",
"style": true
}
]
]
}
问题
Jest 执行测试时出现 SyntaxError: Unexpected token import 错误。
原因:Jest 无法理解 ES6 的 import
特性。
解决方法:
第 1 步:删掉 bebel-plugin-import 配置中 libraryDirectory
的部分。
// .babelrc
{
"presets": ["env", "react", "stage-0"],
"plugins": [
[
"import",
{
"libraryName": "antd",
"style": true
}
]
]
}
这时,运行 jest 会出现 ReferenceError: Select is not defined 错误。
第 2 步:安装 babel-plugin-transform-es2015-modules-commonjs
$ yarn add --dev babel-plugin-transform-es2015-modules-commonjs
更新 .babelrc
// .babelrc
{
"presets": ["env", "react", "stage-0"],
"plugins": [
"transform-es2015-modules-commonjs",
[
"import",
{
"libraryName": "antd",
"style": true
}
]
]
}
再次运行 jest,问题解决了。
refs: