質問

私は、自分で解決することができないように思われる資産の事前コンパイルに本当に厄介で永続的な問題を抱えています。エラーがないいくつかのファイルでは、コンパイルは常に失敗します。たとえば、以下のエラーはファイルにあります copies.js.coffee それはコメントしかありません。そのファイルを削除すると、別のファイルにエラーが発生します。私のすべての資産ファイルのタイプはです us-ascii - どのファイルにも奇妙な文字がありません。 Rails 3.1.3を使用しています。 Ruby 1.9.2と1.9.3で両方を試しました - 違いはありません。

$ rake assets:precompile --trace
(in /cygdrive/c/Development/artwork2)
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/home/kari/.rvm/rubies/ruby-1.9.3-p0/bin/ruby.exe /home/kari/.rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
湉異⁴牅潲㩲唠歮潮湷漠瑰潩⼢祣摧楲敶振唯敳獲欯牡⽩灁䑰瑡⽡潌慣⽬敔灭支數橣㉳㄰〲ㄱⴲ㔵〲㐭瀶湸⸱獪•灳捥晩敩⹤਍
  (in /cygdrive/c/Development/artwork2/app/assets/javascripts/copies.js.coffee)
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:150:in `exec_runtime'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:27:in `block in exec'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:26:in `exec'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:18:in `eval'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:32:in `call'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/coffee-script-2.2.0/lib/coffee_script.rb:57:in `compile'
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/tilt-1.3.3/lib/tilt/coffee.rb:46:in `evaluate'

これは本当に迷惑であり、私は前進することができません。私はここから他の場所から見つけたほとんどすべてを試しました。

追加:私はこれをCygwinとUbuntuの両方でRVMの両方で試しました。

役に立ちましたか?

解決 2

問題はコーヒーレールでした。生成されたすべてのコーヒーファイルを資産から削除しました。生成されたコメントのみが含まれていましたが、他に何も含まれていません。その後、資産は本来あるべき通りにまとめられました。どこかに悪いバグがあるに違いありません。数時間かかりました。メソッドを提案してくれたリチャードに感謝します。

他のヒント

その見た目では、JavaScriptファイルの1つは何らかの形で有効ではありません。

私はすべてが開発モードで正しく実行されると推測していますが、それはすべてがブラウザで正しく機能するのですか?

これがそうである場合、すべてのファイルがデバッグモードで提供されるため、コードは開発で正しく実行されます - それらは連結または圧縮されていません。コンパイルされると、最初に連結してから圧縮されます。

問題は、欠落しているセミコロンの形で含まれているファイルのいずれかの構文エラーである可能性があります。 JavaScriptコンプレッサーは、コードの1つのブロックがどこで終了し、別のブロックが始まるかを決定するためにこれらを必要とします。最初に確認する場所は、プラグインの定義の終わりです。問題が1つのファイルにあると仮定すると、時間に1つのファイルだけを削除し、実行するまでコンパイルすると、犯人ができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top