[請益] nodejs專案轉檔成二進位執行檔

看板 Soft_Job
作者 lecrepuscule (CDBP)
時間 2023-11-30 17:17:17
留言 0則留言

版上各位大大好 目前用nodejs做了一個專案,因為想開放給其他使用者使用,所以想把專案build成一個 二進位執行檔,讓其他使用者不需要裝node環境也能執行。 我當初寫專案是使用ESM,目前使用了幾個方法都沒辦法順利轉檔成二進位執行檔: 1. pkg與nexe等打包工具:爬文發現這兩個工具都是支援commonJS,所以有先把專案使用 esbuild轉檔成commonJS,雖然打包過程都沒有出現錯誤,但執行時卻會出現 require() of ES Module ... not supported.的提示。 然而即便我直接使用ESM的檔案進行打包,也會顯示無法轉檔成bytecode的錯誤。 期間有在stackoverflow和github討論區爬文,發現兩年前也有相關的討論話題,但似乎 並沒有被解決: https://github.com/vercel/pkg/issues/1291 2. 使用nodejs v20原生的打包指令 我是參考這個官方文件來操作: https://nodejs.org/api/single-executable-applications.html 但官方文件已經講得很清楚,目前只支援單個文件的打包,所以也不適用我的專案。 在網路上爬文幾乎都是建議上述兩種做法,無計可施之下還有查到第三種作法: 3. Deno本身支援compile binary executables,但我目前的專案已經是使用nodejs, 也已經完成的狀態, 閱覽了一下Deno官方文件,發現程式碼要重構的地方應該不少,也不知道會不會有 新的坑。 因此想請問版上的大家,是否有使用ESM遇到類似情況,以及是否有更好的辦法可以解決 非常感謝!! --
※ 批踢踢實業坊(ptt.cc), 來自: 59.120.11.125 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1701335839.A.160.html

您可能感興趣