NodeWebkit-部署应用程序

NodeWebkit - deploy the application

本文关键字:应用程序 部署 NodeWebkit-      更新时间:2023-09-26

我有一个Web和NodeWebkit(NW)应用程序的代码库。我使用以下堆栈:-React-哈皮-Sequelize-Windows环境

Web版本的应用程序使用MySQL,而NW使用Sqlite。一切都很好。我有一个配置文件,用于编译我需要的应用程序(web或NW)。

我现在面临的问题是如何部署NW应用程序。想法是向客户提供NW应用程序,他将在那里单击图标打开它。

由于我在NW版本中使用Node,并且应用程序使用存储在Node_modules中的许多模块,因此我面临着如何将其全部打包的挑战。

我的想法是制作一个Windows安装程序。用户将单击它,安装程序将把所有文件提取到目的地。并在用户桌面上制作一个图标来运行它

问题在于Windows文件名限制。在node_modules中,有许多子目录违反了Windows的限制。我甚至无法复制node_modules文件夹。我甚至不能删除它。如果我压缩它…或者手动删除长文件夹,我肯定可以复制它。

我还没有开始安装,但我想我会用这种方法碰壁。

有人知道如何进行部署吗?如何在NW中集成NPM3?

我现在的计划是制作Windows安装程序。该windows安装程序将正常安装应用程序文件。node_modules将被预先压缩并放置在安装程序中。安装程序将简单地将其解压缩到destionation文件夹。

我将在这里发布我的进度。

这里有一些更新。这里的主要问题是node_modules的深度。node_modules中有许多模块,经过思考,我发现其中有一个简单的规则。一些模块是服务器端模块,而其他模块则由react使用。由于Webpack已经创建了一个巨大的文件,其中已经包含了所有模块,所以我根本不需要它们。

因此,我删除了所有前端模块(babel模块,react-*),只剩下服务器端(Hapi,sequelize…)。奇迹发生了,应用程序运行,启动时速度更快。

我将使用Inno设置来制作一个清单文件,这应该很好。

我仍然没有脱离危险区,因为开发人员可能需要一个具有巨大深度的服务器端模块。但如果真的发生了,我会考虑的。

更多内容。。。

实际上,在nodejs中,您可以执行以下操作:

1-在项目文件夹中创建另一个文件夹,例如"server_modules"

2-在创建的文件夹中创建另一个package.json文件,并安装服务器所需的任何模块

3-所有这些模块都可以作为使用require('module_name')的普通node_modules访问,如果不需要,您可以在打包桌面版本时删除"server_modules"文件夹

注意:一些开发人员使用这种方法在nodejs中实现微服务,但在您的情况下它很有用