Как правильно загрузить модуль lit-html в Electron?

Попытка объяснить это более описательно,

Операция 1:

x = [[0, 0], [0, 0]]
print(type(x)) # <class 'list'>
print(x) # [[0, 0], [0, 0]]

x[0][0] = 1
print(x) # [[1, 0], [0, 0]]

Операция 2:

y = [[0] * 2] * 2
print(type(y)) # <class 'list'>
print(y) # [[0, 0], [0, 0]]

y[0][0] = 1
print(y) # [[1, 0], [1, 0]]

Заметил, почему не изменяется первый элемент первого списка не изменил второй элемент каждого списка? Это потому, что [0] * 2 действительно представляет собой список из двух чисел, и ссылка на 0 не может быть изменена.

Если вы хотите создать копии клонов, попробуйте выполнить операцию 3:

import copy
y = [0] * 2   
print(y)   # [0, 0]

y = [y, copy.deepcopy(y)]  
print(y) # [[0, 0], [0, 0]]

y[0][0] = 1
print(y) # [[1, 0], [0, 0]]

еще один интересный способ создания копий клонов, операция 4:

import copy
y = [0] * 2
print(y) # [0, 0]

y = [copy.deepcopy(y) for num in range(1,5)]
print(y) # [[0, 0], [0, 0], [0, 0], [0, 0]]

y[0][0] = 5
print(y) # [[5, 0], [0, 0], [0, 0], [0, 0]]
1
задан Carl 24 March 2019 в 04:49
поделиться

1 ответ

Вам нужно перевести 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, чтобы импортировать lit-html без его переноса.

Пример:

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

Что если вы не можете использовать type="module"

Если вы не можете использовать метод type="module" выше, вы также можете использовать Пакет ESM .

ESM - это невероятно простой загрузчик модулей 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')
0
ответ дан ChrisBrownie55 24 March 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: