При тестировании файлов .js
, которые имеют импорт Webpack CSS, например import './style.css'
, Mocha выдает синтаксическую ошибку (потому что он пытается импортировать и анализировать файл CSS как JS). Существует решение для которое уже было опубликовано в Stack Overflow, но оно адресовано только в том случае, если вы еще не используете компилятор с Mocha. Я использую Babel 5. Я пробовал следующее, но кажется, что Mocha не поддерживает передачу нескольких компиляторов:
// npm test script
mocha ./src/**/*Test.js --compilers css:./scripts/mocha-webpack-compiler.js js:babel/register
// scripts/mocha-webpack-compiler.js
function noop() {
return null;
}
require.extensions['.css'] = noop;
Есть ли способ иметь несколько компиляторов Mocha или лучший способ сказать Mocha не пытаться проанализировать импорт Webpack CSS?
EDIT:
Мне нравится предлагаемое решение @Giles B ниже; это было именно то, что мне нужно. Однако, так как я все еще на Вавилоне 5, мне нужно было несколько настроек, как показано ниже:
mocha.opts
--require scripts/support/babelhook
--require scripts/support/mocha-webpack-compiler
Сценарии /babelhook.js
require('babel/register');
Сценарии/мокко WebPack-compiler.js
function noop() {
return null;
}
require.extensions['.css'] = noop;
mocha script
mocha ./src/**/*Test.js
Это работает для меня с помощью babel
и babel-core
, как версии 5.8.23
.