NodeWebkit - 部署应用程序

NodeWebkit - deploy the application

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

网页版应用程序使用MySQL,而NW使用Sqlite。一切正常。我有配置文件可以编译我需要的应用程序(网络或网络)。

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

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

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

问题出在 Windows 文件名 limitation 上。在 node_modules 中,有许多子目录完全违反了 Windows 限制。我什至无法复制 node_modules 文件夹。我什至不能删除它。好吧,我可以复制它如果我压缩它...或手动删除长文件夹。

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

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

我现在的计划是制作 Windows 安装程序。 windows 安装程序将正常安装应用程序文件。 node_modules 将预先压缩并放置在安装程序中。安装程序随后会将其解压缩到目标文件夹。

我会post我的进步。

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

所以我删除了所有前端模块(babel 模块、react-*),只留下服务器端(Hapi、sequelize...)。奇迹发生了,应用程序 运行 并且启动速度更快。

我打算使用 Inno setup 制作清单文件,应该可以开始了。

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

更多内容……

实际上在nodejs中你可以做以下事情:

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

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

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

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