2011-10-24 27 views
9

Chạy:RoR Precompiling Tài sản thất bại trong khi tài sản cào: tiền biên dịch - trên application.js cơ bản trống

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) 

Dưới đây là toàn bộ nội dung của application.js:

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

không có gì khác ở đó.

Tôi đã cố gắng xóa ba dòng //= require từ application.js, phần biên dịch trước đó sẽ chạy mà không gặp sự cố nào.

+0

Tệp 'application.js' nào bạn đã cho chúng tôi thấy nguồn của? Nó nằm ở đâu? – lloydpick

+0

C: /Sites/MyApp/app/assets/javascripts/application.js trang được tạo tự động. Tôi loại bỏ ba // yêu cầu các dòng và nó được biên dịch trước không có vấn đề, tôi phải giả định rằng các đá quý jquery có một trục trặc. Tôi cuối cùng sẽ cần jquery vì vậy nó sẽ là tuyệt vời để có được điều này cố định. thx – asarig

+0

Bạn có jquery-rails trong Gemfile của bạn và bạn đã gói cài đặt? – bratsche

Trả lời

13

Hình như nó có thể là một vấn đề với uglifier và Windows Script Host:

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

Hãy chắc chắn rằng bạn đang sử dụng phiên bản cuối cùng của uglifier (1.0.4). Nếu bạn vẫn gặp vấn đề, tôi muốn đề nghị cố gắng một trình biên dịch khác nhau (ví dụ như trình biên dịch Đóng cửa)

Trong Gemfile:

gem 'closure-compiler' 

Trong config/environments/production.rb

config.assets.js_compressor = :closure 

cách khác vô hiệu hóa nén JS hoàn toàn:

config.assets.compress = false 
+0

cảm ơn câu trả lời này, nó đã hoạt động! để giúp đỡ người khác: Tôi nắm lấy uglifier 1.0.4 và thử; không may mắn. Grabbed đóng cửa-trình biên dịch 1.1.4, thêm đá quý và thay đổi cấu hình và cố gắng: làm việc như một say mê! – asarig

+0

Cảm ơn bạn. Nếu câu trả lời là hữu ích, xin vui lòng miễn phí để upvote và/hoặc chấp nhận :) –

+0

Hi Alex, đó là điều đầu tiên tôi mệt mỏi để làm, nó nói với tôi "bỏ phiếu lên đòi hỏi 15 danh tiếng. Tôi mới ở đây với tổng cộng 1 danh tiếng ... xin lỗi, xin đừng ngừng giúp tôi vì tôi không thể nói lời cảm ơn đúng đắn! – asarig

1

Tôi có cùng một loại er ROR

...>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=' 
... 

và đã

bundle update 

mà đưa vào

uglifier (2.1.1) 

(trong số những thứ khác), sau đó:

rake assets:precompile 

và giải quyết vấn đề của tôi. Windows, Rails 3.2.11.

Các vấn đề liên quan