你如何在创建反应应用项目中使用HJSON和Jest?

时间:2018-01-19 11:28:36

标签: javascript jest hjson

我在create-react-app项目中使用HJSON(请参阅回答here),但Jest不使用相同的webpack配置,因此无法正确导入HJSON - 例如< / p>

import options from '../assets/options.hjson'; 

只需将options设置为字符串'../ assets / options.hjson'。

那么如何使用Jest导入HJSON文件?

1 个答案:

答案 0 :(得分:1)

您需要为Jest创建一个转换器模块,以将HJSON转换为JSON - 请参阅文档here

使用

在根目录中创建文件jest-hjson-transformer.js
const hjson = require('hjson');

function process(src, path, config, transformOptions) {
  const json = hjson.parse(src);
  const jsonStr = JSON.stringify(json, null, 2);
  const out = `module.exports = ${jsonStr}`;
  return out;
}
exports.process = process;

package.json

  "jest": {
    "moduleFileExtensions": [
      "js",
      "jsx",
      "hjson"
    ],
    "transform": {
      "^.+\\.hjson$": "<rootDir>/jest-hjson-transformer.js"
    }
  },