Javascript 从“;语法错误:解析错误”;PhantomJS/CasperJS中的消息
我有一个很长的CasperJS脚本。当我运行它时,我得到: phantomjs file.js SyntaxError: Parse error phantomjs文件.js 语法错误:分析错误 是否有办法获得有关错误的更多信息。Javascript 从“;语法错误:解析错误”;PhantomJS/CasperJS中的消息,javascript,debugging,syntax-error,phantomjs,casperjs,Javascript,Debugging,Syntax Error,Phantomjs,Casperjs,我有一个很长的CasperJS脚本。当我运行它时,我得到: phantomjs file.js SyntaxError: Parse error phantomjs文件.js 语法错误:分析错误 是否有办法获得有关错误的更多信息。 至少一个行号?还是有任何提示?在PhantomJS本身中无法确定这一点。有关的文件说: 这是在PhantomJS中最接近全局错误处理程序的地方 这并没有捕获语法错误。如果您尝试使用--debug=true选项运行它,您将看到许多调试消息,但最终的错误仍然包含相
至少一个行号?还是有任何提示?在PhantomJS本身中无法确定这一点。有关的文件说: 这是在PhantomJS中最接近全局错误处理程序的地方 这并没有捕获语法错误。如果您尝试使用
--debug=true
选项运行它,您将看到许多调试消息,但最终的错误仍然包含相同数量的信息
我尝试的另一件事是使用第二个PhantomJS脚本,它读取原始脚本并尝试eval
。在这种情况下会触发phantom.onError
事件,但trace
参数为空
好的方面是PhantomJS/CasperJS脚本只是JavaScript,所以您可以将它们粘贴到JavaScript中,或者在它们上运行专用的jslinter来查看问题所在。您必须在网站上标记一些选项,否则会出现很多错误:
- 将幻影添加到全局变量框中
- 启用node.js模式和
- 容忍“一切”(或那些你真正想容忍的事情)
node file.js
我花了整整8小时来解决这个问题。诀窍是运行“phantomjs”并键入“require”path_to_js_file”。我使用了phantomjs的2.1.1版本。可能2.2也能工作 然后会有一个堆栈跟踪,显示哪一行是违规者。您不会在testem输出中看到这一点 在我的例子中,如果您为一个对象定义了两次属性,它将适用于chrome、firefox等,但不适用于phantomjs。Lint可能会有所帮助,但对于我所从事的项目,Lint错误超过5K,而且几乎不可能看出哪里出了问题。另外,特定的问题可能隐藏在“javascript严格模式冲突”的同一个bucket下。Nodejs也没有抱怨这一点。可能是重复的