Как правильно загрузить модуль lit-html в Electron? - PullRequest
2 голосов
/ 24 марта 2019

Я пытаюсь использовать lit-html, чтобы сэкономить время, но у меня возникают проблемы с правильной настройкой.

Электрон 4.1.1

Узел 11.15

За 5 минут до публикации я запустил установку npm и восстановление электронной системы, не повезло.

Я использую require () так же, как и любой другой пакет NPM

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

К сожалению, меня приветствует эта ошибка enter image description here В отношении трех строк кодавыше.

Я не вижу проблем с моим кодом.

Я пытался переустановить lit-html через NPM, но безрезультатно.Я бы очень хотел использовать эту библиотеку, но сначала я должен преодолеть это препятствие.Если честно, я не знаю, воспроизводима ли эта ошибка, но, похоже, я ничего не могу исправить.Кажется, проблема связана с узлом и способом обработки импорта.

Я что-то здесь упускаю?Это общая проблема?Если так, что я могу сделать, чтобы исправить это?

1 Ответ

2 голосов
/ 24 марта 2019

Перед тем, как вы сможете require it

вам нужно проверить lit-HTMLошибка исходит из lit-html/lit-html.js:31, где в строке используется синтаксис ES Module import.

Вы можете перенести его, используя такие инструменты, как 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 - это невероятно просто,Загрузчик модулей ECMAScript без использования babel-менее.

Вот несколько примеров его использования:

  1. Использование флага запроса узла (-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')
...