7
我開始一個新的反應項目,並使用Jest作爲測試平臺。儘管文檔,博客和許多其他資源如stackoverflow,我總是有一個「意外的令牌導入」錯誤可能與babel問題有關,但我的conf似乎沒有問題。歡迎任何幫助。Jest,意外的令牌導入
My Jest conf(在package.json中)。我的package.json有一個像巴貝爾,笑話,巴貝爾預設-ES2015,巴貝爾預設-反應等
"jest": {
"testMatch": [
"**/?(*.)spec.js?(x)"
],
"moduleDirectories": [
"src",
"node_modules"
],
"moduleNameMapper": {
"^lib/(.*)$": "<rootDir>/src/lib/$1",
"^components/(.*)": "<rootDir>/src/components/$1",
},
"transform": {
"^.+\\.jsx?$": "babel-jest"
}
我.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"]
}
}
}
我的spec文件:
import React from 'react';
import Radio from 'components/ui/radio';
...
和組件/ UI /無線電(進口引發錯誤在第一行):
import Container from './container.jsx';
...
我的webpack有兩個名爲lib和components的別名(在jest中定義爲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'),
],
},
...
+1。您可能還想考慮簡單的做法:'npm我babel-preset-env --save-dev'並將''env「'添加到package.json中的babel預設列表中。然後你可以安裝你需要的任何預設,而不必將它們全部添加到預設列表中。 – Jonathan
我有同樣的問題,'jest --no-cache'沒有解決它,但是它做了什麼/修復/刪除了我的node_modules文件夾和我的package-lock.json文件,然後重新運行'npm i '。我認爲這是因爲我在完成原始安裝時激活了不同版本的節點。 (我用nvm切換。)檢查你的節點版本! – Jonathan