Node.js Windows上的电子封装器不起任何作用
我已经在Windows中编写了一个带有Electron的小应用程序,并且有一些功能可以检查注册表中已安装的某些软件的信息,我需要在另一台机器上运行该应用程序进行测试。所以,我正在尝试打包我的应用程序 首先,需要注意的是,当我在项目的根目录中运行electron.时,它运行时没有任何问题 我已尝试手动打包应用程序,方法是将我的应用程序放在Node.js Windows上的电子封装器不起任何作用,node.js,electron,electron-builder,Node.js,Electron,Electron Builder,我已经在Windows中编写了一个带有Electron的小应用程序,并且有一些功能可以检查注册表中已安装的某些软件的信息,我需要在另一台机器上运行该应用程序进行测试。所以,我正在尝试打包我的应用程序 首先,需要注意的是,当我在项目的根目录中运行electron.时,它运行时没有任何问题 我已尝试手动打包应用程序,方法是将我的应用程序放在resources\app文件夹下并运行Electron.exe。它不起作用。Electron应用程序在任务管理器中启动,然后以同样快的速度退出。没有任何错误或警
resources\app
文件夹下并运行Electron.exe。它不起作用。Electron应用程序在任务管理器中启动,然后以同样快的速度退出。没有任何错误或警告。没有对话什么的
我已经安装了electron packager模块,并尝试使用它来打包应用程序。然而,它什么也不做。没有控制台输出,它只是在退出之前在那里停留一段时间。当它退出时,没有打包的应用程序。一切都没有改变。我试过electron builder,得到了同样的结果
我对node一般来说是新手,所以我怀疑我只是做错了什么。这是我的package.json(我仍然不完全理解它的用途):
我的目录结构如下
Welcome
|____app
| |____src
| | |____dist
| | | |____bundle.js
| | |____react
| | | |____components
| | | | |____installation.jsx
| | | | |____...
| | | | |____software.jsx
| | | |____index.jsx
| | |____util
| | |____data.js
| |____app.html
|____node_modules
| |____...
|____main.js
|____package.json
|____webpack.config.js
从我所能看到的来看,我所做的一切都没有问题。正如我所说,当使用electron cli(
electron.
)运行时,它工作得非常好。所以,我不知所措。我只能推测package.json可能有问题。有什么问题吗?为什么我在运行打包机时看不到任何控制台输出?您不需要electron packager
,electron builder
作为一个完整的解决方案就足够了,请参见我将给您留下我如何使用electron packager的API打包应用程序的脚本,也许您可以用它构建您的.exe
'use strict';
var packager = require('electron-packager');
var options = {
'arch': 'ia32',
'platform': 'win32',
'dir': './',
'app-copyright': 'Paulo Galdo',
'app-version': '2.1.6',
'asar': true,
'icon': './app.ico',
'name': 'TierraDesktop',
'out': './releases',
'overwrite': true,
'prune': true,
'version': '1.3.4',
'version-string': {
'CompanyName': 'Paulo Galdo',
'FileDescription': 'Tierra de colores', /*This is what display windows on task manager, shortcut and process*/
'OriginalFilename': 'TierraDesktop',
'ProductName': 'Tierra de colores',
'InternalName': 'TierraDesktop'
}
};
packager(options, function done_callback(err, appPaths) {
console.log("Error: ", err);
console.log("appPaths: ", appPaths);
});
在这里,您可以看到此脚本上可以使用的所有选项:我也尝试了builder,但它也不起任何作用。我认为它也使用电子分装机,不是吗?如果OP使用了错误的分装机,告诉OP使用不同的分装机将是一个很好的答案,但电子分装机是一种完全可以接受的做事方式,对我来说也很有效。(我还不知道答案…还在研究中。)@MarcRochkind问题标记为
electron builder
:)@Luke是的,electron builder使用电子分装机,但在引擎盖下,API是不同的。所有配置都是使用package.json
中的build
键完成的。您有一个相当复杂的目录结构。由于您是electron packager的新手,我会从所有内容开始,就像在electron.atom.io上的快速入门应用程序一样。先让它工作起来。(这对我来说很好。)然后,开始用更复杂的树结构进行更精细的设计。你是否尝试使用electron packager的API而不是命令行来打包你的应用程序?这个脚本成功了。非常感谢你!我不知道CLI为什么不工作:/很好,我也有同样的问题CLI@PauloGaldoSandoval链接不再使用。@利亚科斯谢谢,我已经更新了它
'use strict';
var packager = require('electron-packager');
var options = {
'arch': 'ia32',
'platform': 'win32',
'dir': './',
'app-copyright': 'Paulo Galdo',
'app-version': '2.1.6',
'asar': true,
'icon': './app.ico',
'name': 'TierraDesktop',
'out': './releases',
'overwrite': true,
'prune': true,
'version': '1.3.4',
'version-string': {
'CompanyName': 'Paulo Galdo',
'FileDescription': 'Tierra de colores', /*This is what display windows on task manager, shortcut and process*/
'OriginalFilename': 'TierraDesktop',
'ProductName': 'Tierra de colores',
'InternalName': 'TierraDesktop'
}
};
packager(options, function done_callback(err, appPaths) {
console.log("Error: ", err);
console.log("appPaths: ", appPaths);
});