2

我正在尝试使用 lit-html 来节省一些时间,但我无法正确设置所有内容。

电子 4.1.1

节点 11.15

截至发帖前 5 分钟,我已经运行了 npm install 和 electron-rebuild,没有运气。

我像使用任何其他 NPM 包一样使用 require()

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

在此处输入图像描述 不幸的是,在参考上面的三行代码时,我遇到了这个错误。

我没有看到我的代码有任何问题。

我尝试通过 NPM 重新安装 lit-html 无济于事。我真的很想使用这个库,但首先我必须克服这个障碍。老实说,我不知道这个错误是否可重现,但我似乎没有做任何修复它。问题似乎在于节点和处理导入的方式。

我在这里错过了什么吗?这是一个常见问题吗?如果是这样,我该怎么做才能解决它?

4

1 回答 1

2

您需要先转译 lit- requirehtml

我进行了测试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 Moduleimport语法的位置。

您可以使用 Babel 或类似工具等工具对其进行转译。但是,您可能想尝试使用 ES 模块语法,这样您就可以导入 lit-html 而无需对其进行转译。

例子:

<!-- HTML File -->
<script type="module" src="index.js"></script>
// index.js
import { html } from 'lit-html';

如果不能使用怎么办type="module"

如果您无法使用上述type="module"方法,您也可以使用ESM 包

ESM 是一个非常简单、无 babel、无捆绑的 ECMAScript 模块加载器。

以下是一些如何使用它的示例:

  1. 使用节点需要标志( )在其他所有内容之前-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')
于 2019-03-24T05:06:53.633 回答