2012-03-12 45 views
35

Tôi đã cài đặt đường ray (v3) trên Hộp Linux Ubuntu & cài đặt không thành công khi phàn nàn về thời gian chạy javascript bị thiếu. Tôi đã làm một số tra cứu & nó chỉ ra rằng đường ray yêu cầu một thời gian chạy javascript được cài đặt trên nền tảng chạy của nó.Tại sao đường ray yêu cầu Thời gian chạy JavaScript?

Mặc dù, Windows đã đi kèm với jscript theo mặc định. Hộp Ubuntu của tôi không có thời gian chạy js & Tôi đã khắc phục sự cố bằng cách cài đặt node.js (V8).

AFAIK, thời gian chạy js là bắt buộc để thực thi mã javascript & đường ray chỉ là một khung web trong đó javascript được nhúng. Các tệp Javascript chỉ chạy trên các máy khách.

Vì vậy, Tại sao đường ray yêu cầu Thời gian chạy JavaScript?

+3

http://guides.rubyonrails.org/asset_pipeline.html – lucapette

+0

Có lẽ cho CoffeeScript, nếu tôi phải đoán. – SLaks

+0

Có một câu trả lời nhưng tôi đồng ý đây là loại vô lý và gây phiền nhiễu của đường ray. Nhưng bất cứ điều gì. –

Trả lời

28

Nhìn vào Rails Asset Pipeline. Nó có nội dung lạ mắt với các tệp JavaScript (và CSS). Đáng chú ý là:

  1. Nó chuyển đổi CoffeeScript vào hoạt Javascript
  2. Nó kết hợp tất cả các file javascript vào một
  3. Nó minifies rằng tập tin

Thời gian chạy JavaScript là used for minification.

+0

vì vậy nó chỉ là cần thiết trong phát triển phải không? –

+0

@David 天宇 Wong tùy thuộc vào việc bạn biên soạn tài sản của mình trong sản xuất hay phát triển – tybro0103

+4

Điều đáng chú ý là việc xử lý JavaScript (không thực thi nó) sẽ không * chủ yếu * yêu cầu thời gian chạy JavaScript. Lý do tại sao đường dẫn nội dung Rails cần thời gian chạy JavaScript là nó xử lý với các công cụ như CoffeeScript và uglifier rằng * chúng được triển khai trong JavaScript * và do đó yêu cầu thời gian chạy được sử dụng. –

1

Railsguides nói nó đã làm với nén:

Bạn sẽ cần một ExecJS hỗ trợ thời gian chạy để sử dụng uglifier. Nếu bạn đang sử dụng Mac OS X hoặc Windows, bạn đã cài đặt thời gian chạy JavaScript trong hệ điều hành của mình. Kiểm tra tài liệu ExecJS để biết thông tin về tất cả các thời gian chạy JavaScript được hỗ trợ.

http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression

tôi nghĩ rằng tôi đã nhìn thấy Rails thực sự kiểm tra tính hợp lệ của cả stylesheets và javascript trong ứng dụng của bạn, nhưng có lẽ đó chỉ là Sass prepreocessing.

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