我可能从根本上误解了,但是我想通过将节点库包含在可执行文件之外来封装几个单独的节点可执行文件和一个节点库副本,就像Electron所做的那样。
我可以找到包装节点应用程序的所有解决方案将nodejs
本身打包到可执行文件中,因此在我需要2个单独的节点可执行文件的情况下,用户下载大小的增加相当大(约20mb)。
我找不到任何方法在多个可执行文件之间共享节点库,我实际上需要多个可执行文件,原因在于我无法控制。
有没有办法将我的JavaScript应用程序转换为小型可执行文件并依赖外部库作为节点?
解决问题的一个简单方法是编译节点包时,将所有代码编译成单个可执行文件,然后在传递相关命令行参数时创建一个工厂界面来运行每个应用程序,
请参阅下面的代码,
const app = require('./app');
const arg = process.argv[2];
const app1 = 'app1';
const app2 = 'app2';
const app3 = 'app3';
const logger = new Logger('app-main');
switch (arg) {
case app1:
app.startApp1();
break;
case app2:
app.startApp2();
break;
case app3:
app.startApp3();
break;
default:
logger.err('Invalid Argument ' + arg);
}
应用程序的代码大小不会很大。如果每个编译的应用程序彼此相关,则此策略可能是完美的。
但除此之外,您可能只需要发送代码并使用nodejs构建自己的运行时,并在安装原始all之前将其发送给用户。因此,您可以将通用运行时捆绑包作为电子。