Упаковка импортированного JavaScript в компонент svelte с использованием накопительного пакета
В моем коде я хочу импортировать внешний файл JavaScript, который является общим для нескольких компонентов. Однако, когда свертка строит компонент, у него возникают проблемы с разрешением импортированной зависимости, поэтому он никогда не включается в выходной пакет. Обратите внимание, я пытаюсь создать компонент svelte (в отличие от приложения svelte), хотя я не уверен, что это имеет значение. Вот мой rollup.config.js:
import svelte from 'rollup-plugin-svelte';
import pkg from './package.json';
const name = pkg.name
.replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3')
.replace(/^\w/, m => m.toUpperCase())
.replace(/-\w/g, m => m[1].toUpperCase());
export default {
input: 'src/Radar.html',
output: [
{ sourcemap: true, file: pkg.module, 'format': 'es' },
{ sourcemap: true, file: pkg.main, 'format': 'umd', name }
],
plugins: [
svelte({
cascade: false,
store: true
})
]
};
1 ответ
Для устранения зависимости существует плагин для
Rollup
:
import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import pkg from './package.json';
const name = pkg.name
.replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3')
.replace(/^\w/, m => m.toUpperCase())
.replace(/-\w/g, m => m[1].toUpperCase());
export default {
input: 'src/Radar.html',
output: [
{ sourcemap: true, file: pkg.module, 'format': 'es' },
{ sourcemap: true, file: pkg.main, 'format': 'umd', name }
],
plugins: [
svelte({
cascade: false,
store: true
}),
resolve()
]
};
Я предполагаю что
Radar.html
является модулем Svelte, т.е. вы можете переименовать его в
Radar.svelte
.