首页 文章

将node.js应用程序打包为跨平台可执行文件,而不是桌面应用程序

提问于
浏览
0

关于这个主题有很多问题,但它们似乎没有区分桌面或服务器端应用程序的可执行文件 . 我想我的第一个问题是:有什么区别?例如,Zeit / pkg表示它们是“node.js二进制编译器”,而nwjs(以前称为node-webkit)表示它们是“基于Chromium和node.js的应用程序运行时” .

我尝试了zeit / pkg并且效果很好,但是已经读过可以有performance issues,除非它配置正确 . 我想确保选择合适的工具并遇到过nwjs . 它似乎做了很多与pkg相同的东西,但有更多的追随者,以及更多的文档和强大的api . 我可以像使用pkg一样使用nwjs作为服务器端可执行文件(即不使用桌面功能)吗?

这个answer表示nwjs "is an option, but it really isn't set-up to do a server - client type relationship",但随后评论说"you can launch a server from node-webkit just in the way you launch it in Node.js. It's just that node-webkit provide another way beyond B/S architecture" .

那么,nwjs有效地与pkg相同,还是根本不同?

我意识到还有Electron,它表示“构建跨平台桌面应用程序”并且看起来类似于nwjs . 我不是想进入一个Electron vs nwjs辩论,而是桌面与服务器,如果有区别的话 .

1 回答

  • 1

    你已经掌握了大部分东西,只需要很少的澄清 . 理由nw.js / Electron声明自己的桌面应用程序是,它's core architectural design is intended to integrate node.js with chromium to have UI enables create application does have UI. You can still use part of those framework (node.js side) without initiating visible ui, in that case behaviorwise it' ll类似于普通的node.js . 还有一点需要注意,就像它在核心中与铬紧密结合一样,在某些情况下,你应该正确地启动铬屏幕(或者像许多CI那样创建虚拟缓冲区,或者等等) .

    此外,当你担心性能时,我怀疑使用UI框架进行服务器端工作可以达到你想要的效果 - 虽然不会有很大的优势,但节点与chrome之间的集成与裸节点相比有明显的开销.js obvioulsy .

    回到原始问题,我觉得问题本身有些模糊 . 如果意图是真正的服务器端应用程序可能你不需要 package 它但正确部署节点及其依赖模块或打包它可安装的方式而不是像pkg那样创建单个二进制文件 .

相关问题