create-react-app内置的jest不支持装饰器的问题

发布于 2022-09-11 19:48:53 字数 1178 浏览 18 评论 0

首先,我的config-overrides.js已经添加了对装饰器的支持,使用npm start启动项目,装饰器能够正常使用,然后我执行npm testjest告诉我不支持装饰器语法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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如果没有 2022-09-18 19:48:53

上面的addDecoratorsLegacy还不够

解决方法

在项目根目录下新增.babelrc文件(顺便说下,CRA会将.babelrc作为增量配置,也就是不需要其他配置来启用.babelrc文件的支持),做如下配置,注意要看你项目的babel-core是什么版本,7.0以下用babel-plugin-transform-decorators-legacy,7.0或者以上用plugin-proposal-decorators

.babelrc

{
  "plugins": [
    ["@babel/plugin-proposal-decorators", {"legacy": true}]
  ]
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文