2010-08-26 43 views
7

Có thể biên dịch một ứng dụng JS và trình thông dịch NodeJS thành một tệp thực thi duy nhất để phân phối không?Có thể biên dịch một ứng dụng JS + trình thông dịch NodeJS thành một tệp thực thi duy nhất không?

+0

Kiểm tra: http://www.appcelerator.com/ nếu bạn muốn phát triển các tệp thi hành bằng JS, HTML và CSS. – BGerrissen

+0

Cảm ơn @BGerrissen, nhưng nó thực sự là một ứng dụng node.js phía máy chủ đang chạy mà tôi muốn "phân phối" an toàn đến các máy chủ của khách hàng. –

+0

Đừng nghĩ rằng công cụ nodejs là xa nhưng than ôi. Được nhìn xung quanh và nhìn thấy rất nhiều cấu hình thủ công. Tất cả đều liên quan đến việc cài đặt nodejs và sau đó triển khai mã bằng git hoặc whatnot. – BGerrissen

Trả lời

1

Có thể biên dịch một ứng dụng JS và trình thông dịch NodeJS thành một tệp thực thi duy nhất để phân phối không?

Điều này nghe có vẻ hiển nhiên nhưng đây là cách tôi thực hiện.

A "thực thi duy nhất để phân phối" âm thanh rất giống một trình cài đặt ...

Một trình cài đặt sẽ chứa hoặc có thể lấy trực tuyến js kịch bản của bạn và một node.js. biên soạn Nó sẽ giải nén mọi thứ và tạo một tập lệnh trong /etc/init.d/ để bắt đầu và dừng máy chủ.

Nếu tất cả khách hàng của bạn trên cùng một bản phân phối (ví dụ Debian), tôi chỉ tạo gói cho công cụ đóng gói thích hợp (ví dụ: apt) và để công cụ gói xử lý mọi thứ.

Mọi khách hàng đều có các bản phân phối khác nhau, bạn có thể xem autopackage.

6

bạn cần một hộp linux với git và python, giải pháp sau đó xấu xí:

$ git clone git://github.com/ry/node.git 
$ cd node 
$ vim src/node.js # add your code to end before "process.loop();" 
$ ./configure 
$ make 
$ sudo make install 
$ node 
+1

Thực sự xấu xí. Tôi nghĩ bạn nên ghi đè lên phần 'if (process.argv [1]) {... module.runMain()' trong 'src/node.js' và tải mã của bạn làm mô-đun gốc thay vì chèn nó nguyên văn. Tôi chưa thử nghiệm. – user123444555621

+0

ý tưởng đã được hướng dẫn digitala để đọc mã nguồn nodejs :) – Lauri

+0

Tốt nhất. 1 cho rằng: D – user123444555621

1

Nếu mục tiêu của bạn là để thực thi javascript, bạn có thể để tạo ra một đơn giản C hoặc C chương trình wrapper ++ mà sẽ đẻ trứng một thông dịch viên và đánh giá JS của bạn. Nếu bạn muốn một tệp duy nhất, nguồn js có thể được bao gồm dưới dạng hằng số chuỗi.

Khi bạn biên soạn chương trình trình bao bọc, bạn muốn statically link nó vào nút và phần còn lại của cây phụ thuộc của nó. Thay vì tùy thuộc vào các thư viện chia sẻ trên hệ thống, liên kết tĩnh sẽ sao chép các thường trình mà dự án của bạn phụ thuộc vào vào nhị phân đã biên dịch.

Cách bạn thực hiện việc này sẽ tùy thuộc vào môi trường của bạn

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