我正在运行phantomJS 2.1.0,我正在使用它在我的angularJS网站上生成页面的pdf。在我的开发服务器上使用未缩小的代码,一切都很完美。在我的生产服务器上使用缩小的代码,我得到一个关于我的模块未加载的错误。当我在我的开发服务器上使用缩小代码时,我没有得到任何错误,也没有任何消息,phantomJS只报告它加载了页面,但页面上没有任何javascript运行。我还可以看到phantomJS检索页面的所有适当资源。
答案 0 :(得分:0)
如果其他人遇到这个非常令人沮丧的问题,我最终发现该错误与我的高图代码有关。在定义我的某个图表的配置时,我已经定义了两次相同的属性。例如。 (我定义了两次传奇):
$('#data-chart').highcharts({
title: {
style: {
display: 'none'
}
},
credits: false, //do not show 'Highcharts.com' on chart
colors: ['#264653', '#2a9d8f', '#e9c46a', '#f4a261', '#e76f51', '#67a9e5', '#f8ed08', '#7b69a9','#91e8e1'],
legend: {
enabled: false
},
yAxis: [
{title: { text: null } },
{
opposite: true, //show secondary y-axis on right side of graph
title: { text: null } //Hide y-axis title
}
],
plotOptions: {
column: {
pointPadding: 0,
borderWidth: 0,
groupPadding: 0.15
},
series: {
stacking: 'normal'
}
},
tooltip: {
shared: true
},
legend: {
layout: 'horizontal',
align: 'center',
verticalAlign: 'top',
borderWidth: 0,
symbolWidth: 16,
symbolPadding: 10,
itemStyle: {
color: '#a8aab7',
fontFamily: 'Roboto',
fontWeight: 'bold',
fontSize: '14px'
}
}
});
删除第二个定义修复了所有内容。我怀疑问题是浏览器可以通过忽略一个属性来处理双属性,但是phantomJS不能无声地失败。我仍然不确定为什么缩小代码会破坏它但是它不起作用,因为无论你在哪个页面都导入我的所有控制器但是它可能是一个angularJS优化它只解析当前控制器的代码正在使用,但当缩小它解析一切。或者在缩小期间,它对双重属性做了一些工作,打破了幻影解析该代码。