2

我们正在使用 create-react-app 来构建我们的声明性框架。在这个框架中,我们编写了一个 json 文件,该文件被 webpack 加载到一个 react-component 中。我们为此编写了特定的加载器。这在浏览器中运行良好。但是面临单元测试的问题。Create-react-app 使用 Jest 进行单元测试。我想要实现的是在 js 或 react 组件中转换这些 json 文件,但遇到以下限制

  1. 如果我为 json 添加自定义转换,那么由于 jest-runtime 的限制,它不起作用。转换后,它期望输出仅为 json。请参阅限制的 Jest 运行时代码

在此处输入图像描述

  1. 如果我将文件扩展名重命名为“.vm”,那么它永远不会在以下情况下将我的转换器作为 create-react-app add fileTransformer 拾取。对于该正则表达式中提到的所有其他类型,都会选择突出显示的转换器。

在此处输入图像描述

需要您的指导来解决此问题。

4

1 回答 1

0

Webpack 文档:https ://webpack.js.org/loaders/json5-loader/ 将 JSON 转换为 JS 的配置看起来像这样。然后你可以将它传递给 Jest,而不是让 Jest 在运行时尝试转换它。

module.exports = {
  module: {
    rules: [
      {
        test: /\.json5$/i,
        loader: 'json5-loader',
        type: 'javascript/auto',
      },
    ],
  },
};
于 2020-07-23T17:43:04.060 回答