不允许加载本地资源电子/角度/电子构建器

时间:2018-02-07 16:24:51

标签: angular electron electron-builder

我正在构建一个使用角度的电子应用程序。但是,当我尝试使用电子构建器打包应用程序时,我收到错误:

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

我使用了电子和电子助手的所有快速启动。 但是,我确实添加了dist /以使其与

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

如果使用electron .,我的应用程序工作正常但是只有在我运行安装程序后才会发生。

2 个答案:

答案 0 :(得分:2)

我面临着同样的问题。 NodeJs 10.13.0,Angular 7,Electron 3.0.8,Electron Builder 20.36.2

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

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

电子窗口的构建操作将所有生成的内容放置在 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.json 中更改 outputPath 的值,并执行 ng build

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

然后更改电子应用程序( main.js )中的加载路径:

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

构建完成后一切正常

答案 1 :(得分:1)

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