我正在尝试开发Electron JS + Angular JS
桌面应用。我介绍了this网站。
我提供的脚本是
"start:electron": "ng build --base-href ./ && electron ."
和主要的createWindow函数类似
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
mainWindow.loadURL(
url.format({
pathname: path.join(__dirname, `/dist/index.html`),
protocol: "file:",
slashes: true
})
);
// Open the DevTools.
mainWindow.webContents.openDevTools();
mainWindow.on('closed', function () {
mainWindow = null;
});
}
使用以下命令运行此命令
npm run start:electron
我在控制台中收到以下错误。
Failed to load module script: The server responded with a non-JavaScript MIME type of "". Strict MIME type checking is enforced for module scripts per HTML spec.
附加屏幕截图以供参考。
[![enter image description here][2]][2]
如何摆脱这个问题?
Ubuntu:18.04
Node js:10.16.0
角度:v8
答案 0 :(得分:0)
我相信我也遇到了同样的问题,如果我理解正确,那就是Angular 8引入的。
This blog post对于Angular 8定义的新Typescript配置有以下说法:
当target设置为es2015时,我们将生成并标记两个包。 在运行时,浏览器使用script标记上的属性加载正确的包。
<script type="module" src="…"> // Modern JS
<script nomodule src="…"> // Legacy JS
但是由于某种原因,未生成“旧版”选项;结合Electron 5(当前版本)显然不支持ES2015模块这一事实,您会收到一条消息。
为解决此问题,我将target
的{{1}}中的compilerOptions
设置改回了tsconfig.json
:
ES5
我希望在那里的Angular / Typescript专家可以告诉我们更多有关此问题的信息。