Настройка и цель
Проект машинописного текста, с тестами машинописи Мокко. Проект должен быть перенесен из Typescript в ES6, а затем преобразован через Babel для нескольких отправляемых комплектов.
Я бы хотел запустить все тесты в браузере с помощью Karma (и в конечном итоге BrowserStack ) для той же преобразованной версии, что и Babel.
Попытки и проблемы
У меня работает karma-typcript + mocha, но только в браузерах, совместимых с es2017. Проблема заключается в том, чтобы подключить Babel между ними.
Я думаю, что перепробовал все, что мог себе представить, а именно:
- karma-typcript-es6-transform : преобразует только связанные модули ES6, а не код пользователя.
- karma-browserify вместе с babelify transform: browserify кажется несовместимым с машинописью кармы или, по крайней мере, ее системой преобразования. Сбой, когда babel не может найти файл
some/some.js
, который, кажется, существует только в памяти кармы.
- karma-babel-препроцессор кажется правильным способом сделать это.
Также многочисленные варианты всего вышеперечисленного и многое другое, ни один из которых не работал.
Многообещающая настройка с karma-babel-preprocessor
Я думаю, что это должен быть правильный способ сделать это, поэтому я опубликовал проект с моим текущим состоянием вещей: https://github.com/anpur/karma-typescript-babelify.
Вот часть моего karma.conf.js
:
frameworks: ['mocha', 'karma-typescript'],
preprocessors: {
'src/*.ts': ['karma-typescript', 'babel'],
},
babelPreprocessor: {
options: {
presets: [
[ 'es2015' ]
]
}
},
karmaTypescriptConfig: {
compilerOptions: {
sourceMap: true,
target: 'es6'
},
bundlerOptions: {
addNodeGlobals: true,
sourceMap: true
},
tsconfig: './tsconfig.json'
},
Карма может переносить -> преобразовывать -> связывать это в этой настройке, но у меня есть целый ряд различных странных проблем (ни один браузер не работает в этом состоянии):
- В браузерах es2017 (Chrome):
Uncaught Error: Can't find entrypoint
для some-test.ts
(mocha отлично работает без преобразования babel).
- В старом Firefox 44
TypeError: global is undefined
.
- в IE 10
Unable to get property 'wrappers' of undefined or null reference
.
P.S. - Ни один из вышеупомянутых модулей / фреймворков не важен для меня, поэтому я буду доволен любой другой рабочей установкой, которая может выполнять машинописное тестирование -> babel -> тестирование стека браузера. Спасибо!