不允许加载本地资源 electron/angular/electron-builder

Not Allowed to load local resource electron/angular/electron-builder

我正在构建一个使用 angular 的电子应用程序。但是,当我尝试使用 electron-builder 打包应用程序时,出现错误:

Not allowed to load local resource: file:///C:/Users/Eric/AppData/Local/Programs/kaysi/resources/app.asar/dist/index.html

electron和electron-builder的quick start我都用过了。 但是,我确实添加了 dist/ 以使其与

一起使用
win.loadURL(url.format({
  pathname: path.join(__dirname, 'dist/index.html'),
  protocol: 'file:',
  slashes: true
}))

如果使用 electron . 我的应用程序运行良好,但只有在我 运行 安装程序后才会发生。

好的,我最终做的是构建我的 angular 项目,并在它输出的 dist 文件夹中,从那里创建 main.js 和 运行 电子。

我遇到了同样的问题。 NodeJs 10.13.0,Angular 7,Electron 3.0.8,Electron Builder 20.36.2

在我的 angular.json 中,outputPath 的默认配置是 dist

"options": {
             "outputPath": "dist/",
}

electron中windows的构建操作将所有生成的内容放在dist文件夹中。

我最初虽然阅读错误:

**Not allowed to load local resource:file:///C:/Users/Jorge/Documents/Git/CaexCommandCenter/dist/win-unpacked/resources/app.asar/dist/index.html**

是 app.asar 文件在 dist 文件夹中不包含任何文件调用 index.html。

所以我安装了 Asar:

npm install -g asar

并继续验证文件 dist/index.html 是否打包在 app.asar

$ asar list C:/Users/Jorge/Documents/Git/CaexCommandCenter/dist/win-unpacked/resources/app.asar/ > elements_packaged.txt

我没能在 app.asar 中找到任何名为 dist 的文件夹,所以我的结论是在电子中构建过程,将项目的所有内容放入将生成应用程序的文件夹中,在本例中为 dist.

我的下一步是更改 angular.jsonoutputPath 的值,然后执行 ng 构建:

"options": {
                        "outputPath": "angular_build/"`
}  

然后在electron app中更改加载路径(main.js):

var indexPath = path.resolve(__dirname, 'angular_build/index.html');
mainWindow.loadURL(indexPath);

构建后一切正常