使用electron构建本地服务器时的一些问题以及解决方案

问题描述以及解决

1,使用child_process子进程模块时报错
在electron工程的main.js文件中,webPreferences增设nodeIntegration: true

webPreferences: {
            nodeIntegration: true,//允许嵌入Node模块
            contextIsolation: false,
            enableRemoteModule: true
        }
	}

2,使用electron将项目打包后,构建服务器失败
问题描述:
本项目使用child_process子进程模块构建服务器
原代码如下:

 openExec = exec('node ./server.js', function (error, stdout, stderr) {
            if (error) {
                console.log(error.stack);
                console.log('Error code: ' + error.code);
                return;
            }
        });

在使用electron-packager .命令按照默认配置将项目打包后,服务器无法启动,而使用electron .命令打开项目则可以正常启动服务器

解决方案:
(1)由于使用electron-packager打包后,原代码被放置在了打包路径下的resources/app目录下,而electron应用的默认路径为exe文件的当前目录,因此你所需要执行的服务器文件前加上路径 ./resources/app/
(2)此外,需要将node命令改为electron命令,这是因为跨平台的应用可能没有安装配置node.js,而electron中集成了node.js,在electron项目中,可以使用electron命令来替代node。
修改后的代码如下:

 openExec = exec('electron ./resources/app/server.js', function (error, stdout, stderr) {
            if (error) {
                console.log(error.stack);
                console.log('Error code: ' + error.code);
                return;
            }
        });

你可能感兴趣的:(electron,javascript,前端)