Ошибка «MIME-тип не-JavaScript» в электронном проекте JS + Angular - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь разработать настольное приложение Electron JS + Angular JS.Я упомянул этот веб-сайт.

Сценарий, который я даю, -

"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

Узел js: 10.16.0

Угловой: v8

1 Ответ

0 голосов
/ 10 июля 2019

Мне кажется, я столкнулся с той же проблемой, которая, если я правильно понимаю, была введена Angular 8.

В этом сообщении есть следующее, что можно сказать о новомКонфигурация Typescript, определенная Angular 8:

Когда target установлен в es2015, мы генерируем и маркируем два пакета.Во время выполнения браузер использует атрибуты тега script для загрузки нужного пакета.

<script type="module" src="…"> // Modern JS

<script nomodule src="…"> // Legacy JS

Однако по некоторым причинамопция "legacy" не генерируется;в сочетании с тем, что Electron 5 (текущая версия), по-видимому, не поддерживает модули ES2015, это приводит к полученному вами сообщению.

Чтобы решить эту проблему, я изменил настройку target в compilerOptionsиз tsconfig.json назад к ES5:

{
  "compileOnSave": false,
  "compilerOptions": {
    ...
    "target": "ES5",
    ...
  },
  ...
}

Я надеюсь, что специалисты Angular / Typescript смогут рассказать нам больше об этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...