4

我在 Heroku 上部署时遇到了问题,导致 rake 任务失败

rake assets:precompile

如果我整合,底部是我得到的错误

错误发生在 uglifier。

我怀疑这个问题可能与包含许多本地化日历有关。

我通过设置解决了这个错误:

# Compress JavaScripts and CSS
config.assets.compress = false

由于临时文件已清理,我无法检查这些文件。我也无法让 RubyMine 中的调试器在断点处停止。

如果这是一个错误,有什么想法吗?有什么办法让临时文件不被删除?使 RubyMine 调试器在 rake 任务上工作的任何方法(是的,尝试了显而易见的方法,使用 EAP 112-291。

rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets rake 中止!意外字符 ''(行:21454,列:0,位置:641761)

在 parse_error (/tmp/execjs20111231-15374-1fve7h4. js:596:17) 在 Object.next_token [作为输入] (/tmp/execjs20111231-15374-1fve7h4.js:839:17) 在下一个 (/tmp/execjs20111231-15374-1fve7h4.js:943:37) 在 Object . 分号 [as 1] (/tmp/execjs20111231-15374-1fve7h4.js:986:38) 在 prog1 (/tmp/execjs20111231-15374-1fve7h4.js:1527:28) 在 simple_statement (/tmp/execjs20111231-15374- 1fve7h4.js:1123:35) 在 /tmp/execjs20111231-15374-1fve7h4.js:1031:35 在 /tmp/execjs20111231-15374-1fve7h4.js:1510:32

4

4 回答 4

6

您可能会发现其中一个 js 文件在某处有语法错误。这可能是块末尾缺少分号,或其他一些小问题。通常浏览器仍然会加载 js 并且它会工作,但是 uglifier 无法使用这些错误来压缩它。我会先开始查看本地化文件。

找出哪个文件包含错误的一种方法是使用最少的文件集在本地重新编译并逐个添加内容直到它中断。如果是由于缺少分号,损坏将是您添加的倒数第二个文件。

于 2012-01-01T19:19:46.673 回答
3

在我删除了一个杂散的“调试器”语句后,我的预编译。哎呀。

于 2012-02-06T22:44:28.450 回答
2

如果阅读此线程的任何人在您的 rails 应用程序中遇到 unicode 字符或“UTF-8 中的无效字节序列”问题,请尝试将其放入您的 production.rb 文件中:

# override default uglifier options so we don't mangle unicode
  config.assets.js_compressor = Uglifier.new(output: {ascii_only: true})

就我而言,uglifier 正在将我的 javascript 中的字符串转换\udbff为 UTF-8 字符í¯¿,这最终破坏了一些 unicode 正则表达式。(turbo-sprockets 和 codemirror 会发生这种情况,但您可能会在您的 javascript 依赖 Unicode 字符的 ASCII 表示时遇到它。)

于 2013-05-30T00:36:30.850 回答
0

I18N 文件“jquery-ui-i18n.js”在每个评论前都有一个坏字符。

查看 shell 中带有“more”的前两行,显示了错误的字符:

<U+FEFF>/* Afrikaans initialisation for the jQuery UI date picker plugin. */
/* Written by Renier Pretorius. */

删除此字符后,它可以工作。

于 2012-03-12T13:18:51.233 回答