Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从“;语法错误:解析错误”;PhantomJS/CasperJS中的消息_Javascript_Debugging_Syntax Error_Phantomjs_Casperjs - Fatal编程技术网

Javascript 从“;语法错误:解析错误”;PhantomJS/CasperJS中的消息

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选项运行它,您将看到许多调试消息,但最终的错误仍然包含相

我有一个很长的CasperJS脚本。当我运行它时,我得到:

phantomjs file.js SyntaxError: Parse error phantomjs文件.js 语法错误:分析错误 是否有办法获得有关错误的更多信息。
至少一个行号?还是有任何提示?

在PhantomJS本身中无法确定这一点。有关的文件说:

这是在PhantomJS中最接近全局错误处理程序的地方

这并没有捕获语法错误。如果您尝试使用
--debug=true
选项运行它,您将看到许多调试消息,但最终的错误仍然包含相同数量的信息

我尝试的另一件事是使用第二个PhantomJS脚本,它读取原始脚本并尝试
eval
。在这种情况下会触发
phantom.onError
事件,但
trace
参数为空

好的方面是PhantomJS/CasperJS脚本只是JavaScript,所以您可以将它们粘贴到JavaScript中,或者在它们上运行专用的jslinter来查看问题所在。您必须在网站上标记一些选项,否则会出现很多错误:

  • 将幻影添加到全局变量框中
  • 启用node.js模式和
  • 容忍“一切”(或那些你真正想容忍的事情)

尝试运行file.js with node,例如:

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也没有抱怨这一点。

可能是重复的