电子JS + Angular项目中出现“非JavaScript MIME类型”错误

时间:2019-07-02 08:15:48

标签: angular electron mime-types

我正在尝试开发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

1 个答案:

答案 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专家可以告诉我们更多有关此问题的信息。