我试图在一些前端触摸后尝试推送到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
答案 0 :(得分:3)
通常情况下,您仍然可以在这种情况下在本地编译资产,然后转到已编译的application.js文件中的相关行。
所以
bundle exec rake assets:precompile
(您需要有一个本地“生产”数据库才能运行此bundle exec rake db:create:all
)
然后在您的编辑器中打开public/assets/application-some_md5_hash.js
在你的情况下,你会去20575
行并在某个地方寻找一个疯狂的<
确保清理并删除public/assets
文件夹,以免意外将其检入版本控制
我很确定通过访问application-md5stuff.css
可以解决这个问题。答案 1 :(得分:0)
我不确定这是否对您有所帮助,但在我的Gemfile中我安装了错误版本的ruby
bundle exec rake assets:precompile
它告诉我我的版本,更新它对我有用。