我正在尝试使用lit-html节省时间,但是我无法正确设置所有内容。
Electron 4.1.1
Node 11.15
在发布此消息之前的5分钟,我已经运行npm install和 Electron 重建,没有运气。
我像其他NPM包一样使用require()
var render = require('lit-html').render
var html = require('lit-html').html
console.log(require("lit-html"))
不幸的是,我遇到了这个错误
引用上面的三行代码。
我的代码没有任何问题。
我尝试通过NPM重新安装lit-html无济于事。我真的很想使用这个库,但是首先我要克服这个障碍。如果我说实话,我不知道此错误是否可以重现,但是我似乎没有任何办法可以解决。问题似乎在于 Node 和处理导入的方式。
我在这里想念什么吗?这是常见问题吗?如果是这样,我该如何解决?
最佳答案
您需要先转换lit-html才能对其进行require
编码
我测试了require('lit-html')
并收到以下错误消息:
/home/chbphone55/Workspace/test/node_modules/lit-html/lit-html.js:31
import { defaultTemplateProcessor } from './lib/default-template-processor.js';
它明确指出该错误来自
lit-html/lit-html.js:31
,其中该行使用ES模块import
语法。您可以使用Babel或类似工具来转换它。但是,您可能希望尝试使用ES Module语法,以便可以导入lit-html而不进行编译。
例子:
<!-- HTML File -->
<script type="module" src="index.js"></script>
// index.js
import { html } from 'lit-html';
如果您不能使用
type="module"
怎么办如果您无法使用上面的
type="module"
方法,则也可以使用the ESM package。以下是一些使用方法的示例:
-r
)在其他所有内容esm
node -r esm index.js
esm
,然后加载其余代码。 // Set options as a parameter, environment variable, or rc file.
require = require('esm')(module/*, options*/)
module.exports = require('./main.js')