create-react-app内置的jest不支持装饰器的问题
首先,我的config-overrides.js
已经添加了对装饰器的支持,使用npm start
启动项目,装饰器能够正常使用,然后我执行npm test
,jest
告诉我不支持装饰器语法Support for the experimental syntax 'decorators-legacy' isn't currently enabled
,难道jest
需要单独配置装饰器的支持?我该怎么办?
config-overrides.js
const path = require('path')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const { override, addDecoratorsLegacy } = require('customize-cra')
function resolve (dir) {
return path.join(__dirname, dir)
}
const customize = () => (config, env) => {
config.resolve.alias['@'] = resolve('src')
if(env === 'production') {
config.externals = {
'react': 'React',
'react-dom': 'ReactDOM'
}
// config.plugins.push(new BundleAnalyzerPlugin())
}
return config
};
module.exports = override(addDecoratorsLegacy(), customize())
package.json
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
上面的
addDecoratorsLegacy
还不够解决方法
在项目根目录下新增
.babelrc
文件(顺便说下,CRA会将.babelrc作为增量配置,也就是不需要其他配置来启用.babelrc文件的支持),做如下配置,注意要看你项目的babel-core
是什么版本,7.0以下用babel-plugin-transform-decorators-legacy
,7.0或者以上用plugin-proposal-decorators
.babelrc