Ошибка Karma phamtonJS Angular 7 неожиданный токен

#javascript #angular #phantomjs #karma-runner #dygraphs

#javascript #angular #phantomjs #karma-runner #графики

Вопрос:

Я пытаюсь запустить ng-тест в проекте angular 7. При настройке karma для запуска теста с использованием Chrome результат в порядке, но при использовании PhantomJS я получаю следующую ошибку.

 PhantomJS 2.1.1 (Linux 0.0.0) ERROR
{
   "message": "SyntaxError: Unexpected token ','nat http://localhost:9876/_karma_webpack_/vendor.js:98290:0",
   "str": "SyntaxError: Unexpected token ','nat http://localhost:9876/_karma_webpack_/vendor.js:98290:0"
}

PhantomJS 2.1.1 (Linux 0.0.0) ERROR
{
  "message": "SyntaxError: Unexpected token ','nat http://localhost:9876/_karma_webpack_/vendor.js:98290:0",
  "str": "SyntaxError: Unexpected token ','nat http://localhost:9876/_karma_webpack_/vendor.js:98290:0"
}
  

Эта ошибка возникла при установке dygraph 2.1.0 в project

karma.conf.js

 module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    browserNoActivityTimeout: 100000,
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: true
  });
};  

tsconfig.spec.json

 {
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "test.ts",
    "polyfills.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}  

В моем файле polyfill.ts я импортирую: core-js / es6 / reflect, core-js / es7 / reflect, core-js / client / shim, intl

введите описание изображения здесь

Версии:

     "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-phantomjs-launcher": "^1.0.4",
    "dygraphs": "^2.1.0",
  

Ответ №1:

Возможно, PhantomJS не поддерживает ECMA 6, поэтому функция arrow нарушает все это: D