electron 我如何正确地加载lit-html模块在电子

cvxl0en2  于 2023-03-27  发布在  Electron
关注(0)|答案(1)|浏览(181)

我试图使用lit-html来保存一些时间,但我很难正确设置所有内容。
电子4.1.1
节点11.15
在发布这篇文章之前的5分钟,我已经运行了npm install和electron-rebuild,没有运气。
我使用require(),就像使用任何其他NPM包一样

var render = require('lit-html').render
var html = require('lit-html').html
console.log(require("lit-html"))

不幸的是,我在引用上面的三行代码时遇到了这个错误x1c 0d1x。
我的代码没有任何问题。
我尝试过通过NPM重新安装lit-html,但没有成功。我真的很想使用这个库,但首先我必须克服这个障碍。如果我是诚实的,我不知道这个错误是否是可重复的,但我做的任何事情似乎都无法修复它。问题似乎在于node和处理导入的方式。
我在这里错过了什么吗?这是一个常见的问题吗?如果是,我可以做些什么来修复它?

p3rjfoxz

p3rjfoxz1#

需要转lit-html才能require

我测试了require('lit-html'),遇到了这个错误:

/path/to/project/node_modules/lit-html/lit-html.js:31
import { defaultTemplateProcessor } from './lib/default-template-processor.js';

它清楚地指出错误来自lit-html/lit-html.js:31,其中该行使用ES Module import语法。
你可以使用像Babel或类似的工具来转译它。但是,你可能想尝试使用ES模块语法,这样你就可以导入lit-html而不转译它。
示例:
x一个一个一个一个x一个一个二个x

如果无法使用type="module"该怎么办

如果您无法使用上面的type="module"方法,您也可以使用the ESM package(可能已过时)。
ESM是一个非常简单、无babel、无bundle的ECMAScript模块加载器。
下面是一些如何使用它的例子:
1.使用节点require标志(-r)在所有其他内容之前加载esm

node -r esm index.js

1.在主文件中加载esm,然后加载其余代码。

// Set options as a parameter, environment variable, or rc file.
require = require('esm')(module/*, options*/)
module.exports = require('./main.js')

相关问题