我試圖找到一種方法來使用我在沒有安裝node.js的計算機上創建的命令行nodejs應用程序。換句話說,如何將我的應用程序與node.js一起打包,以避免用戶安裝node.js。如何使用Node.js創建獨立命令行應用程序
典型用例是:我運行應用程序,應用程序使用應用程序提供的節點核心工作(或者應用程序檢查是否安裝了node.js,如果不是,則自動下載並安裝它)。
你有什麼想法嗎?
我試圖找到一種方法來使用我在沒有安裝node.js的計算機上創建的命令行nodejs應用程序。換句話說,如何將我的應用程序與node.js一起打包,以避免用戶安裝node.js。如何使用Node.js創建獨立命令行應用程序
典型用例是:我運行應用程序,應用程序使用應用程序提供的節點核心工作(或者應用程序檢查是否安裝了node.js,如果不是,則自動下載並安裝它)。
你有什麼想法嗎?
檢查Node.js License,它似乎是MIT許可的,所以這樣做是完全合法的。
我假設你的目標是Windows或Mac,因爲在Linux上你可以發佈一個依賴特定版本的Node.js的包,並且提供一個腳本來爲.deb
添加一個免費的庫或.rpm
預編譯的Node.js版本。
您需要獲取您感興趣的版本的源代碼併爲您選擇的平臺構建它。我記得,內置的可執行文件可以直接運行而不需要安裝,但它假定某些庫可用於$PATH
(OpenSSL是他們在許可證中明確提到的那個,而不是靜態編譯到二進制文件中)。
Reading the Visual Studio build script,看起來您需要爲Windows安裝Python來構建.exe
。我嫌疑人(但不知道肯定),可執行文件本質上是獨立的Windows,所以你可以捆綁你的Javascript代碼,並寫一個簡單的批處理文件,讓它在該平臺上運行。我不知道如何製作Windows .msi
安裝程序,但vcbuild.bat文件也有包括生成一個的能力,因此您可以搭載他們的代碼來執行此操作。
Python,Perl和Tcl都有一些實用工具,它們將爲腳本創建一個可執行的平臺。 (我不知道Ruby,PHP等) - 到目前爲止,沒有像nodejs這樣的工具,但我也會對現有的工具感興趣。
節點中有一個構建選項,讓它在啓動時運行指定的腳本,因此有些管道就在那裏。
有幾個,但Node-webkit看起來像目前明顯的贏家。先前的替代appjs已被廢棄,這裏是相關tweet:
AppJS不再被保持爲節點的WebKit(https://github.com/rogerwang/node-webkit ...)實現的目的。謝謝大家對我們的支持:(
有一個look在已經寫好的應用程序。
JXcore可以讓你做到這一點。
一旦你已經安裝在Windows(或UNIX系統)JXcore,所有你需要做的就是運行:
jx package app.js "myAppName" -native
這會產生一個。如果命令運行在unix系統上,exe文件(或unix可執行文件)可以分發,並且可以在沒有任何外部依賴的情況下執行(您甚至不需要系統上的JXcore和Node.js)。
下面是關於該功能的文檔:http://jxcore.com/packaging-code-protection/#cat-74
這似乎是一個複製池的一部分:http://stackoverflow.com/questions/6145561/is-there- a-way-to-compile-node-js-source-files,http://stackoverflow.com/questions/7557364/packing-node-js-scripts-node-exe-into-a-single-executable,http: //stackoverflow.com/questions/8173232/make-exe-from-node-js-app,http://stackoverflow.com/questions/8794140/is-it-possible-to-create-desktop-applications-with- node-js,http://stackoverflow.com/questions/9724817/how-to-create-a-stand-alone-command-line-application-with-node-js,http:// sta ckoverflow.com/questions/13388108/standalone-node-js-application – Mogsdad 2013-03-10 12:50:52
一個很好的工具列表在這裏:http://stackoverflow.com/a/12486874/32679 – GrGr 2013-06-30 09:14:42