reactjs - 尝试集成 jest 并与 amchart 使用react,但出现错误。可能是什么问题?

标签 reactjs jestjs amcharts4

以下是我在运行 npm test 时遇到的错误:

      export { System, system } from "./.internal/core/System";
        ^^^^^^

    SyntaxError: Unexpected token export

      1 | import React from 'react';
    > 2 | import * as am4core from "@amcharts/amcharts4/core";
      3 | import * as am4charts from "@amcharts/amcharts4/charts";


      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/node_modules/@jest/transform/build/ScriptTransformer.js:537:17)

最佳答案

AmCharts 以 ES2015 标准提供他们的包,所以它不支持 IE9 或任何旧浏览器。

React 默认脚本强制所有使用的库都编译为与 CommonJS 兼容。

默认情况下,Jest 不编译任何 node_modules 并尝试按原样运行 amCharts 代码并失败。

如果您从 react-scripts 中弹出,那么您可以更新 jest 配置:

"jest": {
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\](?!(@amcharts)\\/).+\\.(js|jsx|ts|tsx)$"
    ],
...
}

如果您不想弹出,则需要使用 transformIgnorePatterns 作为 cli 选项:
react-scripts test --transformIgnorePatterns '[/\\\\]node_modules[/\\\\](?!(@amcharts)\\/).+\\.(js|jsx|ts|tsx)$'"

注意:React 团队反对使用此选项的原因之一是,您在测试中的代码将与生产中的代码不同(编译与未编译),但只要您不测试图表,而只是将它们模拟为依赖项即可应该没事。

关于reactjs - 尝试集成 jest 并与 amchart 使用react,但出现错误。可能是什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58968701/

相关文章:

javascript - 在 React 中使用 Stripe 和 Axios 链接异步函数调用

javascript - 如何在javascript中过滤对象子数组的数组和对象子数组的数组

javascript - 为两个不同的渲染调用生成多个数组项

amcharts - 如何在 amcharts V4 导出功能中导出百分比值

angular - amCharts Angular 中的 createChild 处未找到 html 容器

reactjs - useState 钩子(Hook)的 setState 函数的类型?

typescript - 用 Jest 模拟/ stub Typescript 接口(interface)

javascript - 将函数导入 jest.mock 以避免样板代码

javascript - 开 Jest 模拟默认导出 - 需要与导入

javascript - 使用动画(Javascript)动态更新 amCharts 4 世界地图?