Zaczynam nowy projekt reagowania i różdżkę wykorzystuję jako platformę testową. Pomimo dokumentów, blogów i wielu innych zasobów, takich jak stackoverflow, zawsze mam błąd "nieoczekiwanego importu tokena" związany prawdopodobnie z problemem babel, ale mój conf wydaje się być w porządku. Każda pomoc jest mile widziany.Jest, nieoczekiwany import tokenów
My Jest conf (in package.json). Moja package.json ma zależności, jak Babel Babel-żartem ustawionego-es2015 Babel-predefiniowanych reagują itp
"jest": {
"testMatch": [
"**/?(*.)spec.js?(x)"
],
"moduleDirectories": [
"src",
"node_modules"
],
"moduleNameMapper": {
"^lib/(.*)$": "<rootDir>/src/lib/$1",
"^components/(.*)": "<rootDir>/src/components/$1",
},
"transform": {
"^.+\\.jsx?$": "babel-jest"
}
mój .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"]
}
}
}
mój plik spec:
import React from 'react';
import Radio from 'components/ui/radio';
...
i komponenty/ui/radio (błąd import jest podniesiona w pierwszym wierszu):
import Container from './container.jsx';
...
Mój pakiet sieci Web ma dwa aliasy o nazwie lib i komponenty (definiowane jako moduleNameMapper w żart).
...
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. Możesz także rozważyć po prostu wykonanie: 'npm i babel-preset-env --save-dev' i dodanie' "env" 'do twojej listy ustawień babel w package.json. Następnie możesz po prostu zainstalować dowolne gotowe ustawienia, bez konieczności dodawania ich wszystkich do listy ustawień wstępnych. – Jonathan
Miałem ten sam problem, a 'jest --no-cache' nie naprawił tego, ale co/nie zrobił/naprawił to usunięcie mojego folderu node_modules i mojego pliku package-lock.json i ponowne uruchomienie' npm i '. Myślę, że stało się tak, ponieważ miałem inną wersję węzła aktywowaną, kiedy wykonałem oryginalną instalację. (Używam nvm do przełączania.) Sprawdź wersję swojego węzła! – Jonathan