SyntaxError:tests.es5.js的意外标记'const'

Ste*_*rov 1 angular4

我已经切换到Angular4.0.0-rc.1,看起来ES5测试包包含ES2015代码.

我收到这个错误:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Unexpected token 'const'
    at webpack:///~/@angular/core/@angular/core/testing.es5.js:10:0 <- src/test.ts:16345
Run Code Online (Sandbox Code Playgroud)

还发现了Angular repo的相关问题.

use*_*812 6

我刚刚创建了一个基本的Angular项目,并且与PhantomJS集成有相同(或类似)的问题.

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Unexpected token 'const'
  at webpack:///src/app/app.component.ts:1:0 <- src/test.ts:63184
Run Code Online (Sandbox Code Playgroud)

我们的团队开始工作,这就是我们在文档中投入的内容:

PhantomJS是一个无头(又名,没有GUI)浏览器,可用于自动化测试.目前,PhantomJS的局限性在于它仅支持ES5标准.

  1. npm install -g phantomjs-prebuilt
  2. npm install --save-dev karma-phantomjs-launcher
    • 在karma.conf.js中
      1. 添加require('karma-phantomjs-launcher')到插件部分
      2. 添加PhantomJS到浏览器
  3. npm install --save intl
    • 在src/polyfill.ts中
      1. 添加import 'intl'; (在底部取消注释)
      2. 添加import "core-js/client/shim";到Evergreen要求部分
  4. 在src/tsconfig.spec.json(或任何typescript配置用于测试)
    • 将目标设置为es5.

假设一切顺利,测试应该有效.

有关如何触发测试运行的一些示例:

  • ng test --browsers PhantomJS --singleRun true
  • ./node_modules/karma/bin/karma start ./karma.conf.js --browsers PhantomJS --singleRun true