Неожиданный токен "const" при запуске webpack, babel и karma - PullRequest
0 голосов
/ 22 мая 2018

Я настраиваю свой тест кармы, как показано в https://zirho.github.io/2016/06/06/karma-es6/

Тогда у меня ошибка:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  {
    "message": "An error was thrown in afterAll\nSyntaxError: Unexpected token 'const'",
    "str": "An error was thrown in afterAll\nSyntaxError: Unexpected token 'const'"
  }
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 0 of 0 ERPhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 0 of 0 ERROR (0.003 secs / 0 secs)

Я погуглил и выполнил следующие инструкции: SyntaxError: Неожиданный токен 'const' (с Vue, Karma, Webpack, PhantomJS)

Но все равно не повезло.

Ниже приведены мои файлы.

I.package.json

"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-plugin-lodash": "^3.2.11",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.24.1",
"jasmine-core": "^3.1.0",
"karma": "^2.0.2",
"karma-jasmine": "^1.1.2",
"karma-phantomjs-launcher": "^1.0.4",
"karma-webpack": "^3.0.0",
"phantomjs-prebuilt": "^2.1.16",
"webpack": "^3.4.1",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.6.1"

II.karma.conf.js

Мой код внешнего интерфейса находится в /frontend/.

let karmaInitFile = 'frontend/test/helpers/karma.js';

module.exports = function(config) {
    config.set({
        browsers: ['PhantomJS'],
        files: [
            { pattern: karmaInitFile, watched: false }
        ],
        frameworks: ['jasmine'],
        preprocessors: {
            'frontend/test/**/*.js': ['webpack']
        },
        webpack: {
            module: {
                loaders: [
                    { test: /frontend\/.*\.js$/, 
                        exclude: /node_modules/, 
                        use: {
                            loader: 'babel-loader',
                            options: {
                                presets: ['es2015']
                            }
                        }
                    }
                ]
            },
            watch: true,
            resolve: {
                modules: [
                    'frontend',
                    'node_modules'
                ]
            }
        },
        webpackServer: {
            noInfo: true
        }
    });
};

III.внешний интерфейс / test / helpers / karma.js

require("babel-polyfill");
var context = require.context('..', true, /_karma\.js$/);
context.keys().forEach(context);

1 Ответ

0 голосов
/ 16 июля 2018

Я решил проблему, но со временем столкнулся со многими проблемами.Поэтому было решено использовать драйвер ChromeHeadless, для которого не требуется интерфейс браузера.

config.set({
    basePath: 'frontend',
    browsers: ['ChromeHeadless'],
    files: [
        'karma/**/*_test.js'
    ],
...})
...