Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Windows上的电子封装器不起任何作用_Node.js_Electron_Electron Builder - Fatal编程技术网

Node.js Windows上的电子封装器不起任何作用

Node.js Windows上的电子封装器不起任何作用,node.js,electron,electron-builder,Node.js,Electron,Electron Builder,我已经在Windows中编写了一个带有Electron的小应用程序,并且有一些功能可以检查注册表中已安装的某些软件的信息,我需要在另一台机器上运行该应用程序进行测试。所以,我正在尝试打包我的应用程序 首先,需要注意的是,当我在项目的根目录中运行electron.时,它运行时没有任何问题 我已尝试手动打包应用程序,方法是将我的应用程序放在resources\app文件夹下并运行Electron.exe。它不起作用。Electron应用程序在任务管理器中启动,然后以同样快的速度退出。没有任何错误或警

我已经在Windows中编写了一个带有Electron的小应用程序,并且有一些功能可以检查注册表中已安装的某些软件的信息,我需要在另一台机器上运行该应用程序进行测试。所以,我正在尝试打包我的应用程序

首先,需要注意的是,当我在项目的根目录中运行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);
});