Прекомпиляция ресурсов RoR завершается ошибкой, когда ресурсы rake: прекомпиляция - в основном на пустом application.js - PullRequest
9 голосов
/ 24 октября 2011

Работает:

bundle exec rake assets:precompile RAILS_ENV=production --trace

** Execute assets:precompile:primary
rake aborted!
TypeError: Object doesn't support this property or method
  (in C:/Sites/MyApp/app/assets/javascripts/application.js)

Вот все содержимое application.js:

//= require jquery
//= require jquery_ujs
//= require_tree .

больше ничего нет.

Я попытался удалить три //= require строки из application.js, после чего прекомпиляция прошла без проблем.

Ответы [ 2 ]

13 голосов
/ 24 октября 2011

Похоже, что это может быть проблема с uglifier и Windows Script Host:

https://github.com/rails/rails/issues/2847

Убедитесь, что вы используете последнюю версию uglifier (1.0.4).Если у вас все еще есть проблемы, я бы предложил попробовать другой компилятор (например, компилятор Closure)

In Gemfile:

gem 'closure-compiler'

In config/environments/production.rb

config.assets.js_compressor = :closure

или вообще отключить сжатие JS:

config.assets.compress = false
1 голос
/ 19 мая 2013

У меня такая же ошибка

...>rake assets:precompile
C:/Ruby192/bin/ruby.exe C:/Ruby192/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
...
rake aborted!
TypeError: Object doesn't support this property or method
  (in C:/Users/straffordw/railsApps/chorus-spp/app/assets/javascripts/application.js)
C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:68:in `extract_result'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:27:in `exec'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/uglifier-2.0.1/lib/uglifier.rb:167:in `really_compile'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/uglifier-2.0.1/lib/uglifier.rb:95:in `compile'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.11/lib/sprockets/compressors.rb:74:in `compress'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.2.2/lib/sprockets/processing.rb:265:in `block in js_compressor='
...

и сделал

bundle update

, который принес

uglifier (2.1.1)

(среди прочего), затем:

rake assets:precompile

и это решило мою проблему. Windows, Rails 3.2.11.

...