PhantomJS for Angular 4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PhantomJS for Angular 4相关的知识,希望对你有一定的参考价值。
我热衷于使用gitlab的CI / CD设置我的项目。我试图在移动之前设置phantomJS测试:
- 我在现有的ng项目中运行了
npm i -D phantomjs-prebuilt karma-phantomjs-launcher
。 - 我跑了
npm i -s intl
- 我编辑了我的karma.conf.js文件,包括:
require('karma-phantomjs-launcher'), //... browsers: ['Chrome', 'PhantonJS'],
- 我编辑了polyfills.js文件,取消注释:
import 'core-js/es6/symbol'; import 'core-js/es6/object'; import 'core-js/es6/function'; import 'core-js/es6/parse-int'; import 'core-js/es6/parse-float'; import 'core-js/es6/number'; import 'core-js/es6/math'; import 'core-js/es6/string'; import 'core-js/es6/date'; import 'core-js/es6/array'; import 'core-js/es6/regexp'; import 'core-js/es6/map'; import 'core-js/es6/weak-map'; import 'core-js/es6/set'; //... import 'intl'; // Run `npm install --save intl`. /** * Need to import at least one locale-data with intl. */ import 'intl/locale-data/jsonp/en';
现在,我应该准备好接受我的考试...或者我想。但我得到:
ng test --browser PhantomJS --watch false
27 07 2017 17:36:52.088:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Connected on socket dyKzQygLaKO5BjSRAAAA with id 32293
707
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR
SyntaxError: Use of reserved word 'let' in strict mode
at http://localhost:9876/_karma_webpack_/main.bundle.js:663
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR
SyntaxError: Use of reserved word 'let' in strict mode
at http://localhost:9876/_karma_webpack_/main.bundle.js:663
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR
SyntaxError: Use of reserved word 'let' in strict mode
at http://localhost:9876/_karma_webpack_/main.bundle.js:663
答案
它确实与PhantomJS不支持ES2015有关。但是,您不必等待PhantomJS 2.5:您只需要安装和配置相应的polyfill。
通过遵循https://stackoverflow.com/a/42692195/1501787中的步骤,您可以使用ES2015运行PhantomJS而不会出现问题。我已经在Angular 4应用程序中进行了测试,它运行得很好。
另一答案
如果你使用tsconfig.json
,你应该检查你的target: "es5"
PhantomJS还不了解ES2015,而let
关键字是本规范的一部分。 PhantomJS团队plans to release在2.5版本中支持ES2015。
以上是关于PhantomJS for Angular 4的主要内容,如果未能解决你的问题,请参考以下文章
PhantomJS 不适用于 Angular2 项目中的 Karma
Phantomjs 不呈现 Angular + Websockets 页面
Angular单元测试没有通过 - 异常的phantomjs错误
PhantomJS报错warnings.warn('Selenium support for PhantomJS has been deprecated, please use headles