有没有办法编译node.js源文件?
有没有办法编译node.js应用程序?
我也许很晚,但你可以使用“nexe”模块来编译nodejs +你的脚本在一个可执行文件中: https : //github.com/crcn/nexe
Node.js运行在V8 Javascript引擎之上,它本身通过将JavaScript代码编译成本机代码来优化性能…所以没有理由真正编译,那么呢?
EncloseJS 。
你会得到一个没有源代码的function齐全
本机模块也支持。 (必须放在同一个文件夹中)
JavaScript代码在编译时使用V8内部编译器转换为本机代码。 因此,您的源代码不需要执行二进制文件,也不需要打包。
完全优化的本机代码只能在基于客户端机器的运行时生成。 没有这些信息EncloseJS只能生成“未优化”的代码。 它的运行速度比NodeJS慢大约2倍。
此外,node.js运行时代码放在可执行文件(以及您的代码)中,以在运行时为您的应用程序支持节点API。
用例:
- 制作无应用程序的商业版本。
- 无需资源即可制作应用的演示/评估/试用版本。
- 制作一些自解压的存档或安装程序。
- 使用节点推力创build一个封闭的源代码GUI应用程序。
- 无需安装node和npm来部署编译的应用程序。
- 无需通过npm install下载数百个文件来部署您的应用程序。 将其部署为一个独立的文件。
- 将您的资产放在可执行文件中,使其更具可移植性。 testing您的应用程序对新的节点版本,而不安装它。
这里有一个答案: NodeJS应用程序的安全分发 。 Raynos说:V8允许你预编译JavaScript。
你可以使用Closure编译器来编译你的javascript。
您还可以使用CoffeeScript将您的咖啡文字编译为JavaScript。
你想通过编译来达到什么目的?
编译任意的非阻塞JavaScript的任务倒是说,C听起来非常令人望而生畏。
编译成C或ASM确实没有那么快的速度。 如果你想通过子程序将速度增益卸载到C程序。
现在这可能包括比你需要的更多(甚至可能不适用于非graphics环境中的命令行应用程序,我不知道),但有nw.js。 这是眨眼(即铬/ Webkit)+ io.js(即Node.js)。
您可以使用node-webkit-builder为Linux,OS X和Windows构build本机可执行文件。
如果你想要一个GUI,这是一个巨大的优势。 你可以用networking技术build立一个。 如果你不这样做,在package.json
指定"node-main"
(可能是"window": {"show": false}
虽然也许只是有一个node-main
而不是main
)
我没有试图用这种方式来使用它,只是把它扔到那里作为一种可能性。 我可以说这对于非graphics化的Node.js应用程序来说当然不是一个理想的解决scheme。
我推荐uglifyJS ,它与node.js很好。
JavaScript没有像Java / C这样的编译器(你可以把它比作PHP等语言)。 如果你想编写编译的代码,你应该阅读关于插件的一节,并学习C.虽然这是相当复杂的,我不认为你需要这样做,而是只是写javascript。