解决运行mini-electron.exe没反应

使用mini-blink中的mini-electron打包程序

按照mini-electron使用方法说的弄好,然而点击运行mini-electron.exe时没有出现程序界面。

下载到最新包解压到miniblink-package文件夹后,取出mini-electron.exe、node.dll文件放入工程目录下(其中node.dll会被覆盖),miniblink.asar放入resources目录下即可。此时运行mini-electron.exe即可看到效果。
当然,还有种更简单的方法,就是下载解压最新包后(例如叫miniblink-package),直接把vscode的resources\app文件夹拷入miniblink-package\resources\app。再运行mini-electron.exe即可。

弄好后我的文件目录如下:
在这里插入图片描述
展开后的文件目录

dbgview调试,点击运行mini-electron.exe后系统输出信息如下:

[3220] fs__write console.log:
[3220] default_app.js, option.file:E:\miniblink-181214\resources\app\package.json
[3220] fs__write console.log:
[3220] default_app main.js packagePath,E:\miniblink-181214\resources\app\index.html
[3220] fs__write console.log:
[3220] App threw an error during load
[3220] fs__write console.log:
[3220] E:\miniblink-181214\resources\app\index.html:1
[3220] (function (exports, require, module, __filename, __dirname) { <!DOCTYPE HTML>
[3220]                                                               ^
[3220] SyntaxError: Unexpected token <

在\miniblink-181214\resources\miniblink.asar\default_app\main.js 167行,

// Start the specified app if there is one specified in command line, otherwise
// start the default app.
if (option.file && !option.webdriver) {
    const file = option.file;
    const protocol = url.parse(file).protocol;
    const extension = path.extname(file);

(大概是上面那里)

添加如下代码以调试:

console.log("option.flie: "+file);
    console.log("protocol: "+protocol);
    console.log("extname: "+extension);

再次运行mini-electron.exe,dbgview输出如下:

[11016] fs__write console.log:
[11016] default_app.js, option.file:E:\miniblink-181214\resources\app\package.json
[11016] fs__write console.log:
[11016] option.flie: E:\miniblink-181214\resources\app\package.json
[11016] fs__write console.log:
[11016] protocol: e:
[11016] fs__write console.log:
[11016] extname: .json
[11016] fs__write console.log:
[11016] default_app main.js packagePath,E:\miniblink-181214\resources\app\index.html
[11016] fs__write console.log:
[11016] App threw an error during load

运行mini-electron自带的默认app(能正常打开,无问题)时,dbgview输出如下:

[3736] fs__write console.log:
[3736] default_app.js, option.file:E:\miniblink-181214\resources\miniblink.asar\default_app\index.html
[3736] fs__write console.log:
[3736] option.flie: E:\miniblink-181214\resources\miniblink.asar\default_app\index.html
[3736] fs__write console.log:
[3736] protocol: e:
[3736] fs__write console.log:
[3736] extname: .html

分析:查源码发现,要想正常运行,packagePath得是json格式,不能是html。
既然默认版本的option.file是resources\miniblink.asar\default_app\index.html,照猫画虎,要确保自己的app的option.file是resources\miniblink.asar\app\index.html

解决方案:
对E:\miniblink-181214\resources\miniblink.asar\default_app\main.js进行修改,第56行

let tryPaths = ['../../app.asar/package.json', '../../app.asar/main.js', '../../app/package.json', '/index.html'];

改为:

let tryPaths = ['../../app.asar/package.json', '../../app.asar/main.js', '../../app/index.html'];

运行mini-electron.exe后程序界面出现,正常运行。

仅做记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值