我正在构建一个使用角度的电子应用程序。但是,当我尝试使用电子构建器打包应用程序时,我收到错误:
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 .
,我的应用程序工作正常但是只有在我运行安装程序后才会发生。
答案 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并从那里运行电子。