Я начинаю новый проект реагирования, и я палочку использую Jest в качестве тестовой платформы. Несмотря на документы, блоги и многие другие ресурсы, такие как stackoverflow, у меня всегда есть ошибка "неожиданного импорта маркера", связанная, вероятно, с проблемой babel, но мой конфиг, похоже, в порядке. Любая помощь приветствуется.
My Jest conf (в пакете .json). У моего пакета .json есть зависимости, такие как babel-jest, babel-preset-es2015, babel-preset-react и т.д.
"jest": {
"testMatch": [
"**/?(*.)spec.js?(x)"
],
"moduleDirectories": [
"src",
"node_modules"
],
"moduleNameMapper": {
"^lib/(.*)$": "<rootDir>/src/lib/$1",
"^components/(.*)": "<rootDir>/src/components/$1",
},
"transform": {
"^.+\\.jsx?$": "babel-jest"
}
My.babelrc conf:
{
"presets": [
["es2015", { "modules": false }],
"react"
],
"plugins": [
["react-hot-loader/babel"],
["transform-object-rest-spread", { "useBuiltIns": true }],
["transform-runtime"]
],
"env": {
"test": {
"presets": ["es2015", "react"]
}
}
}
Мой файл спецификации:
import React from 'react';
import Radio from 'components/ui/radio';
...
И компоненты /ui/radio (ошибка импорта возникает в первой строке):
import Container from './container.jsx';
...
У моего webpack есть два псевдонима с именем lib и components (определяйте как moduleNameMapper в шутке).
...
resolve: {
mainFiles: ['index', 'main'],
extensions: ['.js', '.jsx'],
alias: {
lib: helpers.getPath('src/lib/'),
components: helpers.getPath('src/components/'),
},
modules: [
helpers.getPath('src'),
helpers.getPath('node_modules'),
],
},
...