#javascript #web-component #es6-modules #svelte #custom-element
#javascript #веб-компонент #es6-модули #стройный #пользовательский элемент
Вопрос:
Я начал работать со svelte и создал с его помощью несколько повторно используемых веб-компонентов, но теперь я пытаюсь использовать один из моих классов, который я также создал.
main.ts:
import MinimalTableManager from './components/MinimalTableManager.svelte';
import MinimalDataTable from './components/MinimalDataTable.svelte';
import {TableSort} from './models/tableSort';
Оба элемента работают просто отлично, когда я тестирую их в своем html:
<script type="module">
import * as tm from '/build/bundle.js';
...
</script>
И моя главная проблема в том, что я хотел бы использовать свой TableSort
класс и в коде, но сейчас я не могу его импортировать:
import {TableSort} from '/build/bundle.js';
...
Uncaught SyntaxError: The requested module '/build/bundle.js' does not provide an export named 'TableSort'
rollup.config.js
:
...
input: 'src/main.ts',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
}
...
Это определенно ошибка новичка, но сейчас я понятия не имею, как мне правильно подойти к этому.
Комментарии:
1. Есть ли причина, по которой вы импортируете непосредственно из своего пакета, а
'./models/tableSort'
не?2. Да, я тестирую компонент в моем
index.html
not in Svelte, потому что я хотел бы использовать его и в других местах.3. Сможете ли вы опубликовать связанный компонент? Может быть, так оно и скомпилировано
4. Конечно, это
bundle.js
: pastebin.com/HKfz6G46 а это и есть то самоеrollup.config.js
: pastebin.com/xMtwp2iv5. Пакет не имеет экспорта. Возможно , вам придется попробовать другой формат вывода вместо
iife
.
Ответ №1:
Благодаря @Daniel_Knights я изменил формат вывода на rollup.config.js
from iife
to es
, и теперь он работает просто отлично.