这可以作为 Web 应用程序(在 chrome 浏览器中)正常工作。我正在使用lit-html和聚合物来创建 Web 组件。
src/components/helloWorld.js
import { html, render } from "lit-html";
class HelloWorld extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
const template = html`<h2>Hello World</h2>`;
render(template, this.shadowRoot)
}
}
window.customElements.define("hello-world", HelloWorld);
src/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<hello-world></hello-world>
<script type="module" src="components/hello-world.js"></script>
</body>
</html>
然而,试图在 Electron 中实现这一点失败了。具体错误是:
加载模块脚本失败:服务器以非 JavaScript MIME 类型“”响应。根据 HTML 规范对模块脚本强制执行严格的 MIME 类型检查。
因此,我将错误解释为指向此问题:
<script type="module" src="components/hello-world.js"></script>
我很困惑为什么当它们都使用铬时它会作为一个网络应用程序而不是在电子中工作。我研究了这个主题,发现了一些堆栈溢出问题,但无法完全理解答案。
这是我读到的似乎相关的内容:Electron ES6 module import