这可以作为Web应用程序正常工作(在chrome浏览器中)。我正在使用 lit-html 和 polymer 创建一个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>
当它们都使用铬时,为什么它可以用作Web应用程序却不能用作电子应用程序,使我感到困惑。我已经研究了此主题,发现了一些堆栈溢出问题,但无法完全理解答案。
这是我阅读的似乎相关的内容:Electron ES6 module import