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?
Trả lời
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.
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
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
ý tưởng đã được hướng dẫn digitala để đọc mã nguồn nodejs :) – Lauri
Tốt nhất. 1 cho rằng: D – user123444555621
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
- 1. Làm thế nào để biên dịch tập lệnh Lua thành một tệp thực thi duy nhất, trong khi vẫn đạt được trình biên dịch LuaJIT nhanh?
- 2. Trình biên dịch sẽ chỉ biên dịch mã có thể được thực thi?
- 3. biên dịch C++ thành chương trình "thực"
- 4. Tại sao tạo DLL thay vì biên dịch mọi thứ thành một tệp thực thi lớn?
- 5. Có thể buộc Play Framework biên dịch tất cả các tệp js chỉ trong một thông qua RequireJS không?
- 6. Nhận các tùy chọn trình biên dịch từ tệp thực thi đã biên dịch?
- 7. Cách biên dịch tập lệnh python thành tệp nhị phân có thể thực thi
- 8. Làm thế nào một dịch vụ Windows có thể thực thi một ứng dụng GUI?
- 9. Nhúng các tệp DLL vào một tệp thực thi được biên dịch
- 10. Tôi có thể buộc JVM thực sự biên dịch một phương thức nhất định không?
- 11. Có trình biên dịch/phiên dịch nào để thực thi mã cho php 5.3 không?
- 12. Go có biên dịch chéo trên Ubuntu thành tệp thực thi Windows không?
- 13. Gooang có phải là một thông dịch viên hay trình biên dịch không?
- 14. Trình biên dịch có trình biên dịch không?
- 15. Bạn có thể tìm ra trình biên dịch nào được sử dụng để biên dịch chương trình không?
- 16. Có thể nhắm mục tiêu trình biên dịch .net4 từ ứng dụng .net3.5 với CSharpCodeProvider không?
- 17. làm thế nào để biên dịch nodejs thành một tệp nhị phân đơn lẻ, hoàn toàn tĩnh
- 18. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 19. Chương trình/trình biên dịch/thông dịch viên thực sự hoạt động như thế nào?
- 20. (Làm cách nào) Tôi có thể thực thi một tệp .cmake duy nhất trên các cửa sổ không?
- 21. GWT - biên dịch thành tệp html
- 22. Trình biên dịch C không thể tạo tệp thi hành - Cygwin/MiniGW
- 23. AS3 để JS trình biên dịch
- 24. Biên dịch thành tệp thực thi độc lập (.exe) trong Visual Studio
- 25. Làm thế nào để xác định trình biên dịch nào đã được sử dụng để biên dịch một tệp thực thi?
- 26. Biên dịch một tệp Java ... bằng một chương trình Java
- 27. Makefile biên dịch tất cả các tệp cpp trong một thư mục thành tệp thực thi riêng biệt
- 28. Có thể tự động biên dịch và thực thi các đoạn mã C# không?
- 29. JAXB - XJC có thể biên dịch ứng dụng thành cấu trúc lớp không?
- 30. Biên dịch và thực thi mã Scala khi chạy
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
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. –
Đừ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