«Неожиданная строка» при запуске кармы с помощью webpack / babel - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь запустить карму с помощью веб-пакета для предварительной обработки кода с помощью babel, который затем можно протестировать с помощью mocha.Однако всякий раз, когда я запускаю его, я получаю ошибки.

spec / tests.spec.js:

import 'chai/register-expect';

karma.conf.js:

const webpackConfig = require('./webpack.config.js');

const tests = './spec/**/*.spec.js'

module.exports = function(config) {
  config.set({
    singleRun: true,
    browsers: ['Chrome'],
    frameworks: ['mocha'],
    files: [
      tests
    ],
    preprocessors: {
      tests: ['webpack'],
    },
    webpack: webpackConfig,
  })
}

webpack.config.js:

module.exports = {
  mode: 'production',
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env', {
            'modules': false
          }]
        }
      }
    ]
  }
}

Когда я запускаю карму, я получаю следующий вывод:

'Uncaught SyntaxError: Неожиданная строка \ nat http://localhost:9876/base/spec/tests.spec.js?af68737606dd067ef21aa6efadfc004fb1d05454:1:8\n

Что соответствует строке import.

Если я удаляю весь код es6 из теста, то он выполняется успешно, подразумеваяэтот webpack / babel не вызывается должным образом.

Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 03 октября 2018

Так что это не имело ничего общего ни с одним из инструментов, и оказалось, что это JS-гоча.

В karma.conf.js я делал:

const tests = './spec/**/*.spec.js'
...
    preprocessors: {
      tests: ['webpack'],
    }

проблема здесь в том, что tests как ключ объекта переводится в строку "tests".

. Было решено использовать:

preprocessors: {
  [tests]: ['webpack'],
}

, чтобы tests должным образом расширялся дозначение переменной.

...