问题描述
我有一个使用 react-data-grid @ 7 使用 create-react-app 创建的React应用程序。从canary17开始,他们开始使用 ES2020模块,要使用最新的版本,我必须为可选链和 nullish-coalescing-operator 添加支持>转到该应用,否则启动该应用时会出错。
经过几次搜索后,我安装了 customize-cra 和 react-app-rewired ,将脚本命令更改为
"start": "react-app-rewired start"
"build": "react-app-rewired build"
const {
override,addBabelPlugin
} = require("customize-cra");
module.exports = override(
addBabelPlugin("@babel/plugin-proposal-optional-chaining"),addBabelPlugin("@babel/plugin-proposal-nullish-coalescing-operator"),);
尝试运行该应用程序时,我得到了奇怪的行为。
使用 start 命令,我会得到相同的错误,但是如果我构建并部署了该应用程序,则该工作正常。
如果我在config-overrides.js中添加了一些错误并尝试开始运行,则启动会收到一条错误消息,因此我认为文件已加载。
我想念什么吗?
解决方法
经过几次测试,我发现解决方案从
addBabelPlugin("@babel/plugin-proposal-optional-chaining"),addBabelPlugin("@babel/plugin-proposal-nullish-coalescing-operator"),
到
addExternalBabelPlugin(["@babel/plugin-proposal-optional-chaining",{ "loose": false }]),addExternalBabelPlugin(["@babel/plugin-proposal-nullish-coalescing-operator",
我也添加了松散参数,但这不是问题。现在看起来既可以投放,也可以构建