Size: a a a

2020 December 19

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
получается что проект собирается одним компилятором, но при этом настройки компилятора каждого пакета ищут вместе с ним, также как и модули, необходимые для этого
Ес 👍🏻у каждого компонента свой конфиг компиляции? Прям вообще 🔥 (признаться думал, что так и есть уже..))) раз у каждого свой rollup.config.js
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ПОДХОД 4 (уже работает сейчас, в рамках svcli да и вообще пишется в 20-30 строк):

1) по-сути, чтобы ПОДХОД 1 стал полностью рабочим достаточно исключить необходимость препроцессинга 3rd-party пакетов в приложении.
2) поэтому достаточно чтобы пакеты публиковались в качестве "чистых" свелт компонентов, без примесей препроцессоров. то есть содержали в себе только js-css-template, который может схавать свелт компилятор без дополнительных настроек
3) далее при подключении пакета будет использоваться то же поле svelte из package.json, только в этом случае туда нужно прописывать НЕ исходный svelte файл с препроцессорами, а svelte файл, который уже был отчищен от необходимости препроцессинга
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
этот подход почти не требует затрат на имплементацию (все инструменты уже есть) и почти не имеет минусов. если я ошибаюсь - поправляйте
источник

A

Arushwl in Svelte [svelt]
А куда препроцессинг девать, если он есть в компоненте?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Arushwl
А куда препроцессинг девать, если он есть в компоненте?
он делается на этапе сборки компонента
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
но до того, как публикуется в npm
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
давай пример:
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
./src/Component.svelte


h1.foo
 span

<script lang="ts">

</script>

<style lang="scss">

</style>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
компонент использует pug, ts и scss
источник

A

Arushwl in Svelte [svelt]
Ага
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
компонент собирается в:

./dist/
  ./index.js
  ./index.mjs
  ./index.svelte
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
первые 2 файла для использования ВНЕ свелт приложений
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
./dist/index.svelte


<h1 class="foo">
 <span></span>
</h1>

<script>

</script>

<style>

</style>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в package.json
источник

A

Arushwl in Svelte [svelt]
А! index.svelte скомпилен в нативный svelte без препроцессинга🤓
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
"module": "dist/index.mjs",
"main": "dist/index.js",
"svelte": "dist/index.svelte",
"types": "dist/index.d.ts"
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
вуаля
источник

A

Arushwl in Svelte [svelt]
Теперь совсем вижу👍🏻спасибо
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
блин, пойду делать свой шаблон для компонентов тогда )))
источник

A

Arushwl in Svelte [svelt]
Ток вопрос с рантаймом остался... он будет заинлайнен в модули?
источник