reactjs - 开玩笑使用 ES6 导入/导出 SyntaxError: Unexpected token'export' 出现错误
问题描述
我正在测试反应容器。这个容器使用我的自定义装饰器。装饰器文件放在项目外的公用文件夹中。使用 ES6 导出语法。当我运行 jest 时,我得到 SyntaxError: Unexpected token'export',我尝试我尝试了以下解决方案,但没有办法解决它。我也试过 jest v25.4.0 和 v27.1.0 也没有办法。
Jest 是否支持 ES6 导入/导出?
使用 babel 时出现意外的保留字“导入”
以下是我目前的配置
容器
import React from 'react';
import {decorator} from '../../../../common/decorator/decorator';
const TestContainer = (props) => {
return (
<>...</>
);
};
export const Container= decorator.before(TestContainer, xxxx);
装饰师:
const decorator = (function () {
const before = function (target, isHandler) {
let self = target;
return function () {
isHandler.apply(this, arguments);
return self.apply(this, arguments);
}
}
return {
before: before,
}
})();
export {
decorator
};
测试文件:
import React from 'react';
import {render} from '@testing-library/react';
import {Container} from '../container';
describe('container testing', () => {
it('should render container title into dom', () => {
const {getByTestId} = render(Container);
});
});
jest.config.js:
module.exports = {
verbose: true,
testEnvironment: 'jest-environment-node',
collectCoverageFrom: [
'!<rootDir>/src/registerServiceWorker.js',
'!<rootDir>/src/serviceWorker.js',
'!<rootDir>/node_modules/',
],
moduleNameMapper: {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'identity-obj-proxy',
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
},
};
.babelrc
{
"presets": [
"@babel/preset-react",
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
],
"plugins": [
"@babel/plugin-transform-runtime"
],
"env": {
"test": {
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}
}
}
脚本:
"test": "jest --watchAll",
解决方案
推荐阅读
- node.js - 如何在 Mongoose 的 Model.find() 中使用 res.render()?
- r - 给定一个列表,我如何访问不同大小的每个元素的最后一个值
- azure - Azure Ad b2c:在 azure ad b2c 中成功登录后在声明中获取电子邮件
- bpmn - 如何将表单生成器生成的 JSON 保存在流程用户任务中?
- android-studio - 无法摆脱不正确的“build.gradle”弃用警告(“编译”)
- angularjs - AngularJS,取消 ng-change
- r - 使用变量时整数溢出,但使用整数时不会溢出
- jquery - jQuery textFill 不适用于不可见元素
- react-native - ReactNative - 开始一些任务并在应用程序关闭时完成它
- android - 三星 S9:报告四舍五入的 RggbChannelVector 值