如何调试资产提示语法错误?

Posted

技术标签:

【中文标题】如何调试资产提示语法错误?【英文标题】:How to debug asset prompiling syntax errors? 【发布时间】:2014-10-29 15:36:20 【问题描述】:

在一些前端接触之后,我试图推送到 Heroku,但是在预编译时出现了几个错误(我认为是语法错误)。

问题是,我得到的是预编译资产的行号,而不是原始的,所以我不知道如何调试它。!

  ExecJS::ProgramError: Unexpected token: operator (<) (line: 20575, col: 0, pos: 641944)
       Error
       at new JS_Parse_Error (/tmp/execjs20141029-3052-g386xfjs:2357:10623)
       at js_error (/tmp/execjs20141029-3052-g386xfjs:2357:10842)
       at croak (/tmp/execjs20141029-3052-g386xfjs:2357:19067)
       at token_error (/tmp/execjs20141029-3052-g386xfjs:2357:19204)
       at unexpected (/tmp/execjs20141029-3052-g386xfjs:2357:19292)
       at /tmp/execjs20141029-3052-g386xfjs:2357:27484
       at /tmp/execjs20141029-3052-g386xfjs:2357:29977
       at expr_ops (/tmp/execjs20141029-3052-g386xfjs:2357:30735)
       at /tmp/execjs20141029-3052-g386xfjs:2357:30827
       at /tmp/execjs20141029-3052-g386xfjs:2357:31270

【问题讨论】:

【参考方案1】:

在这种情况下,通常您仍然可以在本地编译您的资产,然后转到您编译的 application.js 文件中的相关行。

所以

bundle exec rake assets:precompile

(你需要有一个本地的“生产”数据库来运行这个bundle exec rake db:create:all

然后在你的编辑器中打开public/assets/application-some_md5_hash.js

在你的情况下,你会去20575 并在某处寻找疯狂的&lt;

确保清理并删除 public/assets 文件夹,以免意外将其签入版本控制

我很确定这也适用于通过访问 application-md5stuff.css 获得时髦 CSS 的情况

【讨论】:

【参考方案2】:

我不确定这是否对你有帮助,但在我的 Gemfile 中,我安装了错误的 ruby​​ 版本并运行

  bundle exec rake assets:precompile

它告诉我我有什么版本,更新它对我有用。

【讨论】:

以上是关于如何调试资产提示语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript错误调试

Nagios 调试

如何调试“您的 SQL 语法有错误”

js eslint语法规范错误提示代码

visual 2010 如何设置语法错误自动提示,哪里错误就会出现红色波浪线,但是现在没了 不知道如何调出来

如何调试cloudformation模板?策略中的语法错误。 YAML 文件