美文网首页前端JavaScript的技术技巧交流~
create-react-app下的@修饰器正确的使用方式记录

create-react-app下的@修饰器正确的使用方式记录

作者: chouchou723 | 来源:发表于2018-11-14 15:55 被阅读0次

    在create-react-app下使用es7的@修饰器会报错''Support for the experimental syntax 'decorators-legacy' isn't currently enable"

    需要做以下几步,首先正确安装babel

    "devDependencies": {
        "@babel/core": "^7.1.6",
        "@babel/plugin-proposal-class-properties": "^7.1.0",
        "@babel/plugin-proposal-decorators": "^7.1.6",
        "@babel/preset-env": "^7.1.6",
      }
    

    .babelrc文件配置:

    {
        "presets": ["@babel/preset-env"],
        "plugins": [
          ["@babel/plugin-proposal-decorators", { "legacy": true }],
          ["@babel/plugin-proposal-class-properties", { "loose": true }]
        ]
      }
    

    在pageage.json同级目录新建config-overrides.js并且添加内容

    const { injectBabelPlugin } = require('react-app-rewired');
    module.exports = function override(config, env) {
        // do stuff with the webpack config...
        config = injectBabelPlugin(['@babel/plugin-proposal-decorators', { "legacy": true }], config)   //{ "legacy": true }一定不能掉,否则报错
        return config;
    };
    

    安装react-app-rewired并且修改启动package.json

    "scripts": {
    -   "start": "react-scripts start",
    +   "start": "react-app-rewired start",
    -   "build": "react-scripts build",
    +   "build": "react-app-rewired build",
    -   "test": "react-scripts test",
    +   "test": "react-app-rewired test",
    }
    

    最后运行即可解决

    相关文章

      网友评论

        本文标题:create-react-app下的@修饰器正确的使用方式记录

        本文链接:https://www.haomeiwen.com/subject/ojejfqtx.html