Поддерживает ли Jest импорт/экспорт ES6?
если я использую import/export
из ES6 тогда все мои тесты шутки терпят неудачу с ошибкой:
неожиданное зарезервированное слово
Я конвертирую тестируемый объект в синтаксис старой школы IIFY, и вдруг мои тесты проходят. Или возьмите еще более простой тестовый пример:
var Validation = require('../src/components/validation/validation');//PASS
//import * as Validation from '../src/components/validation/validation'//FAIL
та же ошибка. Очевидно, что здесь есть проблема с импортом/экспортом. Для меня непрактично переписывать код с использованием синтаксиса ES5, чтобы сделать мою тестовую структуру счастливой.
I у Бабеля-шутку. Я пробовал различные предложения из вопросов github. Не заходи так далеко.
пакета.в JSON
"scripts": {
"start": "webpack-dev-server",
"test": "jest"
},
"jest": {
"testPathDirs": [
"__tests__"
],
"testPathIgnorePatterns": [
"/node_modules/"
],
"testFileExtensions": ["es6", "js"],
"moduleFileExtensions": ["js", "json", "es6"]
},
babelrc
{
"presets": ["es2015", "react"],
"plugins": ["transform-decorators-legacy"]
}
есть ли фикс для этого?
4 ответов
это вопрос добавления stage-0 к вашему .файл babelrc. вот пример:
{
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-decorators-legacy"]
}
С мой ответ: на другой вопрос, это может быть проще:
единственное требование-настроить ваш test
среда для Babel и добавьте плагин преобразования es2015:
Шаг 1:
добавить test
среда .babelrc
в корне вашего проекта:
{
"env": {
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
Шаг 2:
установите преобразование es2015 плагин:
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs
и это все. Jest автоматически включит компиляцию из модулей ES в CommonJS, без необходимости сообщать дополнительные параметры вашему jest
собственность внутри package.json
.
В дополнение к установке babel-jest
(который идет с шуткой по умолчанию сейчас) обязательно установите regenerator-runtime
.
Я решил с .default
.
попробовать
var Validation = require('../src/components/validation/validation').default;