Webpack 仅在运行PhantomJS时获取失败的测试(TypeError)
tl;dr如何删除PhantomJS中的此错误 回购 参考回购: 运行Webpack 仅在运行PhantomJS时获取失败的测试(TypeError),webpack,phantomjs,karma-runner,babeljs,webpack-2,Webpack,Phantomjs,Karma Runner,Babeljs,Webpack 2,tl;dr如何删除PhantomJS中的此错误 回购 参考回购: 运行纱线测试 问题 当从Chrome和PhantomJS运行这些相同的测试时,我看到出现了与Webpack捆绑包相关的错误,或者我是这么想的 错误 代码 混乱 特别需要中断的行是sets.find()。如果我把它省略,让它设置为[0],它就可以工作了。在注销set.find()的值时,它总是返回一个匹配的数组,因为编写测试是为了传递一个有效的集合标题 其他两个有类似错误的测试也引用了sets.find()。这个函数有什么是Phan
纱线测试
问题
当从Chrome和PhantomJS运行这些相同的测试时,我看到出现了与Webpack捆绑包相关的错误,或者我是这么想的
错误
代码
混乱
特别需要中断的行是sets.find()
。如果我把它省略,让它设置为[0],它就可以工作了。在注销set.find()的值时,它总是返回一个匹配的数组,因为编写测试是为了传递一个有效的集合标题
其他两个有类似错误的测试也引用了
sets.find()
。这个函数有什么是PhantomJS不喜欢的?缩小范围后,我只能让它显示出来
TypeError: undefined is not a constructor (evaluating 'Array.prototype.find')
PhantomJS 2.1及更早版本不支持Array.prototype.find
。解决方案是通过npm安装PhantomJS插件,并在Karma配置中进行设置:
ptim/phantomjs-polyfill-find
安装后,需要修改Karma配置。文件
属性的第一个数组参数可以修改如下:
files: [
`node_modules/phantomjs-polyfill-find/find-polyfill.js`,
...
],
注意:它必须引用路径中的node\u模块/
。您还可以使用较新的(测试版)PhantomJS,其内部有更现代的Webkit引擎。
ptim/phantomjs-polyfill-find
files: [
`node_modules/phantomjs-polyfill-find/find-polyfill.js`,
...
],