Как вы используете HJSON с Jest в проекте создания-реакции-приложения?

Я использую HJSON в проекте создания-реакции-приложения (см. Ответ здесь), но Jest не использует ту же конфигурацию веб-пакета, поэтому не может правильно импортировать HJSON - например,

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

просто устанавливает options в строку '../assets/options.hjson'.

Итак, как вы можете импортировать файл HJSON, используя Jest?

1 ответ

Вам нужно сделать модуль преобразования для Jest, чтобы преобразовать HJSON в JSON - см. Документацию здесь.

Сделать файл 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"
    }
  },
Другие вопросы по тегам