繁体   English   中英

如何解决错误:SyntaxError:意外的令牌导入

[英]How to solve the error: SyntaxError: Unexpected token import

之前遇到此错误,并看到了其他答案,但解决方案无法解决我的问题。

在我的package.json中,我有:

 "dependencies": {
    "axios": "^0.15.2",
    "babel": "^6.5.2",
    "babel-core": "^6.13.1",
    "babel-loader": "^6.0.1",
    "babel-preset-es2015": "^6.0.15",
    "babel-preset-node5": "^11.1.0",
    "babel-preset-react": "^6.0.15",
    "babel-preset-stage-0": "^6.0.15",
    "babel-preset-stage-2": "^6.11.0",

然后在我的webpack.config.js中,我有:

module.exports = {
 entry: './main.js',

然后在我的main.js中,我有:

import "./src";

然后,我运行npm test调用此脚本:

 "scripts": {
    "test": "mocha src/**/*.spec.js",

然后失败了,因为在src / components / header / index.spec.js:1中,我有: import React from 'react';

无法解决为什么不起作用

我在其中有一个.babelrc文件:

{
  "sourceMaps": true,
  "presets": ["es2015", "react", "stage-2"]
}

在我的webpack中,我还有:

module: {
   loaders: [
     {
       test: /\.js$/,
       exclude: /node_modules/,
       loader: 'babel',
       query: {
         presets: ['es2015', 'react', 'stage-2']
       }
     },
     {
        test: /\.scss$/,
        loaders: ["style-loader", "css-loader", "sass-loader"]
      }
   ]
 }

有任何想法吗?

您可以转到babel设置页面并选择您的测试框架,然后它可以帮助您逐步将测试框架与babel集成。可能是您的测试脚本编写为:

"mocha --compilers js:babel-register src/**/*.spec.js"

当您通过mocha命令执行测试时,它将在没有ES6的情况下在node.js中执行您的测试脚本,因为V8尚未实现ES6。

您可以使用摩卡咖啡的编译器。 您拥有babel-core,可以使用此命令(以您的情况为佳):

mocha src/**/*.spec.js --compilers js:babel-core/register

或安装独立的babel-register(babel-register模块)并使用:

mocha --compilers js:babel-register

详情请见: http : //jamesknelson.com/testing-in-es6-with-mocha-and-babel-6/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM