我正在使用以下脚本来运行我的摩卡测试用例:
"PORT=2334 mocha --require babel-register ./api/**/*.test.js"
但是,这使我的测试脚本中的import语句出现“意外的令牌导入”错误。所以我想知道上面的脚本或我的设置是否有问题:
.babelrc:
{
"presets": [
[
"env",
{
"targets": {
"node": "current"
}
}
],
"bluebird"
],
"plugins": [
"transform-object-rest-spread",
"transform-es2015-arrow-functions"
]
}
package.json
{
"name": "risingstack-docker-graphql",
"scripts": {
...
"test:api": "PORT=2334 mocha --require babel-register ./api/**/*.test.js",
...
},
"dependencies": {
"@koa/cors": "^2.2.2",
"apollo-server-koa": "^2.0.0-rc.12",
"axios": "^0.18.0",
"bluebird": "^3.5.1",
"graphql": "^0.13.2",
"graphql-tools": "^3.0.5",
"joi": "^13.4.0",
"koa": "^2.5.2",
"koa-bodyparser": "^4.2.1",
"koa-compose": "^4.1.0",
"koa-logger": "^3.2.0",
"koa-redis": "^3.1.2",
"koa-router": "^7.4.0",
"less": "^3.8.0",
"lodash": "^4.17.10",
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-scripts": "^1.1.4",
"winston": "^3.0.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-plugin-import": "^1.8.0",
"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-bluebird": "^1.0.1",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.26.0",
"chai": "^4.1.2",
"less-loader": "^4.1.0",
"mocha": "^5.2.0",
"react-app-rewire-less": "^2.1.2",
"react-app-rewired": "^1.5.2",
"sinon": "^6.1.4",
"sinon-chai": "^3.2.0",
"super-request": "^1.2.0"
}
}
然后,我在下面添加了babel-plugin-import和config-override.js,以便为前端启用LESS,不确定它们是否会影响结果:
const rewireLess = require('react-app-rewire-less')
module.exports = function override(config, env) {
config = rewireLess.withLoaderOptions({
javascriptEnabled: true
})(config, env)
return config
}