Шутка с кофейным кодом JSX?
Как я могу использовать Jest для тестирования компонентов React, написанных на CoffeeScript + React jsx?
Единственный пример CoffeeScript, предоставляемый с Jest, использует простой CoffeeScript и не работает с CoffeeScript + React JSX (синтаксическая ошибка, когда он достигает<
).
// preprocessor.js
var execSync = require('exec-sync');
module.exports = {
process: function (src, path) {
return execSync('browserify -t coffee-reactify ' + path);
}
};
Это работает, но занимает слишком много времени (хорошие 12 секунд для фиктивного теста).
Тогда я попробовал:
вторая попытка: кофе-реакция-трансформация// preprocessor.js
var coffee = require('coffee-script');
var transform = require('coffee-react-transform');
module.exports = {
process: function(src, path) {
if (path.match(/\.coffee$/)) {
return coffee.compile(transform(src), {'bare': true});
}
return src;
}
};
Это вызывает странную ошибку, например:
TypeError: function () {...} не имеет метода getPooled
Единственный результат Google для "не имеет метода getPooled" "этот смысл, это показывает именно ту ошибку, которую я получаю, но не предлагает других идей.
третья возможная попыткаЯ думаю, что я мог бы использоватькофе-reactify, но он возвращает поток, который является асинхронным, в то время какprocess
функция вpreprocess.js
используется синхронно, и до сих пор не нашли способа читать поток синхронно.
Что я могу сделать?