Javascript 你可能需要一个额外的加载器

问题描述

我们正在开发以下模块 js(仅限 javascript),它允许生成随机颜色。 链接Github

当我们尝试在 codesandbox 上的示例上安装模块时,我们没有问题。

但是当我们在本地项目上安装模块时,会出现以下错误

./node_modules/random-colors-palette/randomColors.js 141:39
Module parse Failed: Unexpected token (141:39)
File was processed with these loaders:
 * ./node_modules/react-scripts/node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|     if (!repeat) {
|       delete cc[hueNumber].shades[shadeR[0]];
>       if (Object.entries(cc[hueNumber]?.shades).length === 0) cc.splice(hueNumber,1);
|     }
|

问题似乎是由于在相关行中使用了 ?(可选的连接运算符)。

我们如何解决这个问题,我是否需要在项目配置中添加一些其他文件以确保我没有这些问题?

模块不仅应该用于reactjs,还可以作为模块纯js代码

你能帮我们一把吗?

解决方法

你需要babel-plugin-proposal-optional-chaining

它包含在 ES2020 babel 预设中。

你的.babelrc应该是

{
  "presets": ["es2020"]
}

如果您不使用预设,请手动将插件添加到您的 babel 配置中