2011-10-22 41 views
7

thể trùng lặp:
Is there a way to send CoffeeScript to the client's browser and have it compiled to JavaScript there?Có thể biên dịch mã Coffeescript trong các thẻ script trong các tệp html không?

Có một cách đơn giản để biên dịch Coffeescript đó là bên <script> thẻ bên trong html, hay bạn thường có tất cả Coffeescript trong các tập tin riêng biệt?

+0

Andrew đã đóng đinh nó. Xem thêm: http://stackoverflow.com/questions/5170473/is-there-a-way-to-send-coffeescript-to-the-clients-browser-and-have-it-compiled –

+0

Tôi đã suy nghĩ nhiều hơn về biên dịch inline Coffeescript sang Javascript trên máy chủ. Về cơ bản chạy trình biên dịch Coffeescript như một bộ tiền xử lý và bỏ qua HTML. – davidscolgan

+1

Bất kỳ lý do cụ thể nào khiến bạn không thể đặt nó vào một tệp riêng biệt? Bằng cách đó bạn có thể làm việc với chuỗi công cụ hiện có. Nếu không, bạn phải cuộn một cái gì đó như @Trevor đề cập trong câu trả lời của mình. – Thilo

Trả lời

6

Hưởng ứng dvcolgan ấy làm rõ bình luận:

Vì vậy, bạn muốn có một file HTML trên máy chủ với CoffeeScript inline đó được phục vụ dưới dạng HTML với JavaScript nội tuyến. Trình biên dịch CoffeeScript không hỗ trợ trực tiếp, nhưng bạn có thể viết một kịch bản nút để làm điều đó khá dễ dàng, sử dụng thư viện coffee-scriptjsdom để thực hiện phân tích cú pháp HTML.

Chính xác cách bạn muốn triển khai điều này sẽ phụ thuộc vào khung web bạn đang sử dụng. Có thể bạn không muốn trình biên dịch CoffeeScript chạy trên mọi yêu cầu (nó khá nhanh, nhưng nó vẫn sẽ giảm số lượng yêu cầu/giây mà máy chủ của bạn có thể xử lý); thay vào đó, bạn muốn biên dịch HTML của mình một lần và sau đó phân phát phiên bản đã biên dịch từ bộ nhớ cache. Một lần nữa, tôi không biết bất kỳ công cụ hiện có nào có thể làm được điều này, nhưng nó không quá khó để viết cho riêng bạn.

15

Thực tế là có. Có một bài đăng về nó here.

Bản tóm tắt của bài viết đó là thế này:

  1. Bao gồm trong tài liệu HTML của bạn kịch bản của bạn với kiểu text/coffeescript
  2. Bao gồm trong phần đầu của trang dòng này:

    <script type="text/javascript" src="https://raw.githubusercontent.com/jashkenas/coffeescript/master/lib/coffee-script/coffee-script.js"></script> 
    

Hãy coi chừng việc thực hiện điều này không được khuyến khích.

<html> 
 

 
<head> 
 
    <title>In-Browser test</title> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"> 
 
    </script> 
 
    <script src="https://raw.githubusercontent.com/jashkenas/coffeescript/master/lib/coffee-script/coffee-script.js" type="text/javascript"> 
 
    </script> 
 

 
</head> 
 

 
<body> 
 
    <script type="text/coffeescript"> 
 
    $ -> $('#header').css 'background-color', 'green' 
 
    </script> 
 
    <h1 style="color:white" id="header">CoffeeScript is alive!</h1> 
 

 

 
</body> 
 

 
</html>

+0

đoạn trích không thành công trong Chrome với: Từ chối thực thi tập lệnh từ 'http://github.com/jashkenas/coffee-script/raw/master/extras/coffee-script.js' vì loại MIME ('văn bản/đồng bằng') không thực thi được và việc kiểm tra loại MIME nghiêm ngặt được bật. –

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