Agrupar los activos de rake exec: la precomstackción falla con `token inesperado`

Estoy listo para implementar mi aplicación Rails 3.1 en producción, y como estoy usando el canal de activos, necesito precomstackr mis activos . Sin embargo, cuando bash esto, aparece un error aparentemente relacionado con la comstackción de jQuery:

$ bundle exec rake --trace assets:precompile ** Invoke assets:precompile (first_time) ** Execute assets:precompile /home/adam/.rvm/rubies/ruby-1.9.3-p0/bin/ruby /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/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 environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:precompile:primary rake aborted! 399: unexpected token at '"/*!\u000a * jQuery JavaScript Library v1.7.1\u000a * http://jquery.com/\u000a *\u000a * Copyright 2011, John Resig\u000a * Dual licensed under the MIT or GPL Version 2 licenses.\u000a * http://jquery.org/license\u000a *\u000a * Includes Sizzle.js\u000a * http://sizzlejs.com/\u000a * Copyright 2011, The Dojo Foundation\u000a * Released under the MIT, BSD, and GPL Licenses.\u000a *\u000a * Date: Mon Nov 21 21:11:03 2011 -0500\u000a */\u000afunction addActiveScaffoldPageToHistory(a,b){if(typeof 

[cortar un montón de cosas]

  (in /data/music/RotC/eventbook/app/assets/javascripts/application.js) /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/json-1.6.4/lib/json/common.rb:148:in `parse' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/json-1.6.4/lib/json/common.rb:148:in `parse' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/multi_json-1.0.4/lib/multi_json/engines/json_common.rb:9:in `decode' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/multi_json-1.0.4/lib/multi_json.rb:76:in `decode' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:61:in `extract_result' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:27:in `block in exec' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile' /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:26:in `exec' 

[recorta muchas más cosas]

Aquí está mi application.js :

 //= require jquery //= require jquery_ujs //= require jquery-ui // // NB jQuery requires have to come before this: //= require active_scaffold 

Estoy usando el compresor predeterminado, es decir, uglifier .

Descubrí que si cambio config.assets.compress a false en config/environments/production.rb entonces funciona bien, pero, por supuesto, mi aplicación funcionaría mejor si pudiera encontrar una manera de mantenerla como true .

He analizado los activos de rake: la precomstackción no funciona (Rails 3.1.1) y no creo que sea un duplicado porque el error undefined: Unexpected token: operator (<) está undefined: Unexpected token: operator (<) .

¿Algunas ideas? Soy vagamente sospechoso de esos caracteres Unicode en el código jQuery, pero no estoy seguro de cómo probar o refutar que están causando el problema.

Tuve exactamente el mismo problema y lo resolví, aquí están los detalles:

Cuando incluya uno o más archivos javascript en su entorno Rails 3.1 utilizando application.js y //= require ... , Rails envolverá el contenido de su archivo con un . Puede verificar esto ejecutando su sitio en modo de desarrollo y haciendo una Vista | Fuente.

El problema es que, en el modo de desarrollo, si no está usando ese script, puede parecer que funciona bien. Pero, esencialmente, lo que tienes es .

Sin embargo, cuando intenta PRECOMPILE los recursos, hay algo en ese proceso de comstackción (lo siento, no sé exactamente qué) gags en el “<" en el token de script interno.

Vuelva a verificar los archivos .js incluidos y, si alguno de ellos está envuelto por elimine las tags circundantes.

Debería ver que, en Desarrollo, todo se ve bien si ve el Origen de la página. Y, cuando usted precomstack sus activos, el error debería desaparecer.

Me encontré con este problema con el fragmento de código javascript de Google Analytics recomendado por Google y al eliminar el contenedor de script del archivo incluido se solucionó el problema.

Así es como depuré esto.

A nivel local, ejecute este

RAILS_ENV=production bundle exec rake assets:precompile

Trate de averiguar dónde se ahoga (el guión justo antes de la obstrucción es el archivo que querrá ver). Mira todos los requisitos.

En mi caso, tuve un archivo que terminó en .js cuando debería haber sido .jsx y eso es lo que lo arregló.

Yo tenía el mismo problema.

A pesar de que no tenía una etiqueta en mis archivos javascript, ¡la sugerencia de Dave me ayudó mucho!

Pude ver un comentario en una biblioteca externa que estaba cargando en mi application.js :

    Intereting Posts