Я добавил Жасмин в свое приложение create-реагировать, следуя их руководству по установке .
Я хочу использовать тестовую среду Jasmine в моем проекте CRA.
На «npm test» я получаю:
@-webkit-keyframes scale {
^
SyntaxError: Invalid or unexpected token
в терминале.
Ранее я без проблем проводил тесты на шутку / энзим / cyrpess.
Если я сейчас укажу:
"presets": [
"react-app"
]
в package.json
Я получаю, в тесте npm, в терминале:
Using `babel-preset-react-app` requires that you specify `NODE_ENV` or `BABEL_ENV` environment variables
Попытка решения здесь не имеет никакого значения
Если я укажу:
"presets": [
"@babel/preset-react",
"@babel/preset-env"
]
в package.json
Я получаю:
@-webkit-keyframes scale {
^
SyntaxError: Invalid or unexpected token
снова в терминале при 'npm test'.
@-webkit-keyframes scale {
^
SyntaxError: Invalid or unexpected token
Это предложено:
Жасмин не понимает ES6. Вам нужно будет перенести свои спецификации на предустановки es2015.
, что дает мне:
Error: Cannot find module 'babel-preset-es2015'
после того, как я побежал:
npm install --save-dev @babel/preset-es2015
без разницы (я получил ту же ошибку).
Это не работает
Это и это не помогло
Принимая во внимание это , я закомментировал
@-webkit-keyframes
из файла .css, используя ссылку, но это не имело значения.
package.json
{
"name": "sportrank",
"version": "0.1.0",
"private": true,
"dependencies": {
"ajv": "^6.10.0",
"async": "^3.0.0",
"axios": "^0.18.0",
"bootstrap": "^4.3.1",
"browserslist": "^4.6.0",
"chai": "^4.2.0",
"chance": "^1.0.18",
"date-fns": "^2.0.0-alpha.25",
"fortmatic": "^0.7.2",
"jquery": "^3.4.1",
"lodash": "^4.17.11",
"npm-install": "0.0.1",
"nyc": "^14.1.1",
"p-iteration": "^1.1.8",
"popper.js": "^1.15.0",
"react": "^16.8.6",
"react-bootstrap": "^0.32.4",
"react-bootstrap-table": "^4.3.1",
"react-dom": "^16.8.6",
"react-router-dom": "^5.0.0",
"react-spinkit": "^3.0.0",
"react-table": "^6.10.0",
"sendmail": "^1.4.1",
"sinon": "^7.3.2",
"ts-pnp": "^1.1.2",
"typescript": "^3.4.5",
"web3": "^1.0.0-beta.54",
"web3-hdwallet-provider": "^1.0.4-fix2"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.4.5",
"@babel/node": "^7.0.0",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/polyfill": "^7.4.4",
"@babel/preset-env": "^7.4.5",
"@babel/preset-es2015": "^7.0.0-beta.53",
"@babel/register": "^7.4.4",
"babel-preset-react-app": "^9.0.0",
"css-loader": "^2.1.1",
"cypress": "^3.3.0",
"enzyme": "^3.9.0",
"enzyme-adapter-react-16": "^1.13.1",
"ignore-styles": "^5.0.1",
"jasmine": "^3.4.0",
"jasmine-enzyme": "^7.0.2",
"jsdom": "^15.1.0",
"react-addons-test-utils": "^15.6.2",
"react-scripts": "^3.0.1",
"react-test-renderer": "^16.8.6",
"riteway": "^6.0.3"
},
"scripts": {
"test": "babel-node spec/run.js",
"start": "react-scripts start",
"build": "react-scripts build",
"test-react": "react-scripts test",
"test:watch": "react-scripts --watch",
"test:coverage": "react-scripts --coverage --colors",
"eject": "react-scripts eject",
"start": "NODE_ENV=development BABEL_ENV=development node bootstrap.js node bootstrap.js",
"serve": "NODE_ENV=production BABEL_ENV=production node bootstrap.js node bootstrap.js"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"babel": {
"presets": [
"@babel/preset-react",
"@babel/preset-env"
],
"plugins": [
[
"@babel/plugin-proposal-class-properties"
]
]
}
}
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
}
],
loaders: [
{
test: /\.css$/,
use: [
{loader: "style-loader"},
{loader: "css-loader"}
],
options:{
modules:true,
localIdentName:'[path][name]__[local]--[hash:base64:5]',
},
exclude: /node_modules/
}
]
}
};
Ожидать:
тест Жасмин для запуска без проблем с загрузкой / синтаксисом.
Фактический:
@-webkit-keyframes scale {
^
SyntaxError: Invalid or unexpected token