2016-07-07 69 views
8

我使用新的Angular CLI生成了一个新的Angular 2项目。 现在我不想在浏览器中使用Angular,而是在电子应用程序中使用Angular。 因此,我为电子主进程创建了一个文件,然后在终端中使用ng build构建我的Angular应用程序后,该应用程序未按预期工作。使用角2与电子(角CLI)

文件电子的主要过程:

var electron = require("electron"); 
var {app, BrowserWindow} = electron; 

app.on('ready',() => { 
    var mainWindow = new BrowserWindow(); 
    mainWindow.loadURL(`file://${__dirname}/dist/index.html`); 
}); 

错误DevTools:

file:///vendor/es6-shim/es6-shim.js Failed to load resource: net::ERR_FILE_NOT_FOUND 
file:///vendor/reflect-metadata/Reflect.js Failed to load resource: net::ERR_FILE_NOT_FOUND 
file:///vendor/systemjs/dist/system.src.js Failed to load resource: net::ERR_FILE_NOT_FOUND 
file:///vendor/zone.js/dist/zone.js Failed to load resource: net::ERR_FILE_NOT_FOUND 
index.html:22 Uncaught ReferenceError: System is not defined 

我也知道你本质上需要一个网络服务器来运行角度2级的应用程序,我想我的应用程序呢不工作,因为Electron通过file://协议加载应用程序。

但我真的想要与Angular 2结合使用Electron;所以我的问题是如果这是可能的,如果是的话,我需要如何修改从cli工具生成的Angular模板。

+1

第一个搜索结果https://auth0.com/blog/2015/12/15/create-a-desktop- app-with-angular-2-and-electron/ – ishaan

+0

是的,但我想知道如何修改Angular CLI生成的模板。 – HansMu158

回答

9

你也可以改变

<base href="/"> 

<base href="./"> 
-1

从CDN下载angular.js并将其放入您的应用程序文件夹中。然后在HTML文件中使用

<script type="text/javascript" src="angular.js"></script> 

不像浏览器的电子不会有问题,从文件系统拿起angular.js。

+0

谢谢,但我仍然得到相同的错误... – HansMu158

+0

你可以告诉我们你的index.html –

5

昨天念叨角2路由器的东西之后,我想通了,问题是由该线路index.html

<base href="/"> 

引起了动态设置基地的一切替换它按预期工作。

<script>document.write('<base href="' + document.location + '" />');</script>