Я все еще сталкиваюсь с проблемами при попытке использовать модули jest, typcript и es6.Мой тест написан на Typescript, я пытаюсь импортировать объекты из js-файла, который использует модули es6.Для этого я следовал документации jest и в моем файле babel.config.js, расположенном в корневом каталоге проекта, есть следующее:
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current'
}
}
]
]
};
У меня установлены следующие зависимости:
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/preset-env": "^7.3.1",
"@types/jest": "^23.3.13",
"@types/node": "^10.12.18",
"babel-jest": "^24.1.0",
"jest": "^23.6.0",
"rollup": "^1.1.2",
"rollup-plugin-terser": "^4.0.4",
"rollup-plugin-typescript2": "^0.19.2",
"ts-jest": "^23.10.5",
"ts-node": "^8.0.1",
"typescript": "^3.2.4"
}
В jest.config.js у меня есть следующее:
module.exports = {
verbose: true,
transform: {
"^.+\\.jsx?$": "babel-jest",
'^.+\\.ts?$': 'ts-jest'
},
testEnvironment: 'node',
testRegex: '/test/.*\\.(test|spec)?\\.(ts|tsx)$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
};
И, наконец, я пытаюсь импортировать, как это вмои тесты:
import {Dag, Directions} from "../dist/dag";
И здесь говорится: SyntaxError: Неожиданный экспорт токена
D:\devel\tomtom_dag\dist\dag.js:72
}();export { e as Directions, t as Action, n as Dag };
Может кто-нибудь сказать, что я делаю неправильно, или указать на проект с похожим конфигом?И да, я гуглил это уже несколько часов и пробовал решения из здесь , здесь и пробовал с этим плагином - с тем же результатом =(
ОБНОВЛЕНИЕ: Я создал проект для воспроизведения проблемы: https://github.com/AntonPilyak/jest_typescript_es6 Также я заметил, что забыл упомянуть, что я пытался использоватьjest @ 23 версия из-за ts-jest не может работать с последней (выдает предупреждение + я получаю пустой набор тестов). Может быть, мои проблемы проистекают из этого факта. Но все же я не могу сделатьправильная конфигурация: если я использую последнюю версию jest, я получаю предупреждение + jest говорит, что набор тестов пуст и тест проходит, хотя он не должен.