Как вы используете 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"
}
},