phantomJS for Angular 4



我热衷于用 gitlab 的 CI/CD 设置我的项目。我试图在将其移动到那里之前设置phantomJS测试:

  1. 我在现有的 ng 项目中运行了npm i -D phantomjs-prebuilt karma-phantomjs-launcher
  2. 我跑npm i -s intl
  3. 我编辑了我的karma.conf.js文件,包括:

    require('karma-phantomjs-launcher'),
    //...
    browsers: ['Chrome', 'PhantonJS'],
    
  4. 我编辑了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

这确实与不支持ES2015的PhantomJS有关。但是,您不必等待 PhantomJS 2.5:您只需要安装和配置适当的 polyfill。

按照 https://stackoverflow.com/a/42692195/1501787 中的步骤操作,您将获得PhantomJS与ES2015一起运行而不会出现问题。我已经在 Angular 4 应用程序中进行了测试,它运行良好。

如果您使用的是target: "es5",则应检查您的tsconfig.json

PhantomJS还不了解ES2015,let关键字是此规范的一部分。PhantomJS Team 计划在 2.5 版本中发布对 ES2015 的支持。

相关内容

  • 没有找到相关文章

最新更新