PhantomJS失败,没有错误

时间:2016-11-02 14:35:20

标签: angularjs phantomjs

我正在运行phantomJS 2.1.0,我正在使用它在我的angularJS网站上生成页面的pdf。在我的开发服务器上使用未缩小的代码,一切都很完美。在我的生产服务器上使用缩小的代码,我得到一个关于我的模块未加载的错误。当我在我的开发服务器上使用缩小代码时,我没有得到任何错误,也没有任何消息,phantomJS只报告它加载了页面,但页面上没有任何javascript运行。我还可以看到phantomJS检索页面的所有适当资源。

1 个答案:

答案 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优化它只解析当前控制器的代码正在使用,但当缩小它解析一切。或者在缩小期间,它对双重属性做了一些工作,打破了幻影解析该代码。