2015-08-06 3 views
2

Как настроить Mocha/Babel для преобразования модуля в мою папку node_modules, если это необходимо?Mocha + Babel + React Modules

Я разрабатываю приложение в ES6 с реагированием.

Я включаю внешний компонент реакции, который я установил через npm install.

Когда я запустил тест (mocha --recursive --compilers js:babel/register), тест завершился с ошибкой Unexpected token '<' от внешнего модуля.

Причина в том, что внешний реактивный модуль необходимо преобразовать при загрузке. Это указывается в модулях package.json как так:

"browserify": { 
    "transform": [ 
    "reactify" 
    ] 
} 

Он прекрасно работает для браузера. Источник скомпилирован с browserify -t babelify. Используется информация browserify от package.json, и модуль правильно преобразуется при его загрузке.

Как настроить Mocha/Babel, чтобы принять это во внимание?
Или как настроить Mocha/Babel для компиляции модулей в папке node_modules?
Или любым другим способом решить эту проблему?

ответ

3

Вавилон, по умолчанию, не перевозит каталог node_modules. Если вы хотите отключить это, вы можете установить ignore вариант false.

В командной строке можно передать --ignore false либо babel или babel-node, чтобы Бабель в transpile каталог node_modules.

Для вашего использования вы можете передать Mocha --compilers js:babel/register вариант для пересылки файлов, доступ к которым Mocha. Чтобы разрешить перехват регистра Babel для каталога node_modules, вы можете настроить Babel с файлом .babelrc. Файл должен содержать следующее: { "ignore": false }.

Любой из этих вариантов должен позволить вам использовать этот внешний модуль (так как Вавилон перекроет его).

+1

'ignore' принимает [больше значений, чем просто логическое] (http://stackoverflow.com/questions/31822593/import-a-module-from-node-modules-with-babel-but-failed). –

+0

Это не сработало для меня, используя конфигурацию .babelrc, указанную выше, я все еще получаю un-transpiled node_modules. –

Смежные вопросы