SvelteKit вышел в бета-версии

И мы будем рады получить ваши отзывы

Время пришло. После пяти месяцев и сотен коммитов, приглашаем вас протестировать бета-версию SvelteKit. Он еще не закончен (есть несколько известных ошибок и несколько недостающих функций), но мы очень довольны тем, как все складывается.

Начать новый проект легко:

# создайте проект
mkdir my-app
cd my-app
npm init svelte@next

# установите зависимости
npm install

# запустите сервер разработки и откройте вкладку браузера
npm run dev -- --open

Документация здесь ru.kit.svelte.dev/docs. Если у вас есть приложение на Sapper, которое вы хотите перенести на SvelteKit, вы найдете инструкции по адресу ru.kit.svelte.dev/migrating.

Исходный код доступен по адресу github.com/sveltejs/kit. Ишьюсы и пул-реквесты пока закрыты (мы заканчиваем приводить наш репозиторий в порядок), но мы сделаем его полностью открытым в ближайшем будущем.

Подождите, а что такое SvelteKit?

Думайте об этом как о Next для Svelte. Это платформа для создания приложений с помощью Svelte, включая рендеринг на стороне сервера, маршрутизацию, разделение кода для JS и CSS, адаптеры для различных бессерверных платформ и так далее.

Если вы знакомы с Sapper, SvelteKit его преемник.

От Snowpack до Vite

После моего лирического рассказа о Snowpack в этом видео, может показаться удивительным, что SvelteKit использует под капотом Vite. Когда мы думали, какую форму должен обрести SvelteKit, мы попробовали использовать Snowpack — и это была любовь с первого взгляда.

Snowpack создал совершенно новую категорию инструментов для разработчиков. Вместо того, чтобы собирать приложение для разработки, как мы делали с webpack и Rollup в течение последних нескольких лет, Snowpack - это несобирающий сервер разработки, который использует нативный import браузера и на лету выполняет преобразования 1:1 таких вещей, как компоненты Svelte. В результате вы получаете быстрый запуск, простое кеширование и мгновенную горячую перезагрузку модуля. Как только вы испытаете такой способ работы, то не захотите что-то другое.

Vite попадает в ту же категорию, что и Snowpack. В то время как Vite 1 не подходил для SvelteKit - он был ориентирован на Vue (Vite и Vue оба созданы Evan You) и затруднял рендеринг на стороне сервера - Vite 2 не зависит от фреймворка и разработан с использованием SSR в основе. Он также имеет мощные функции, такие как разделение кода CSS, которые нам раньше приходилось реализовывать самостоятельно. Когда мы сравнили две технологии бок о бок, мы были вынуждены сделать вывод, что Vite более соответствует требованиям SvelteKit и позволит лучше реализовать наши идеи.

Мы глубоко признательны команде Snowpack как за тесное сотрудничество на ранних этапах разработки, так и за освещение пути, по которому веб-разработка пойдет в следующие несколько лет. Это замечательный инструмент, и вы обязательно должны его попробовать.

"Экстрим догфуддинга"

SvelteKit находится в стадии бета-тестирования, но это не значит, что он не использовался в продакшене.

Моя дневная работа - в New York Times, где я провел большую часть последних двенадцати месяцев, работая над нашим трекером короновируса. Он использует настроенную версию рабочего процесса, которая поддерживает большую часть графики в Times, которая не предназначена для больших многостраничных проектов. Когда в конце прошлого года мы решили создать страницы для каждого из ~3000 округов США, мы быстро поняли, что нам нужно полностью изменить архитектуру проекта.

Несмотря на то, что он был далеко не готов, SvelteKit был единственным фреймворком, который соответствовал нашим эзотерическим требованиям. (Любой, кто работал в отделе новостей и боролся со своей CMS, поймет, о чем я говорю.) Сегодня он поддерживает наш монитор рисков в округах и мы находимся в процессе миграции существующих страниц в приложение SvelteKit.

Использование незавершенного программного обеспечения для создания приложения, которое увидят миллионы людей, представляет собой риск, и в целом я не рекомендую это делать. Но это позволило нам разработать приложение намного быстрее, а сам фреймворк стал намного сильнее, чем он мог бы быть в противном случае.

Путь к версии 1.0

Вы можете увидеть список нерешенных проблем с этапом 1.0 на странице issue tracker. Параллельно с этой работой мы планируем обновить документацию и добавить больше адаптеров.

Но что еще важнее, нам нужны ваши отзывы, чтобы помочь нам создать наилучшую возможную среду для приложений. Попробуйте и сообщите нам, каких деталей не хватает.

Большое спасибо всем, кто попробовал SvelteKit, несмотря на предупреждения «Осторожно, злая собака» и отсутствие документации; ваша обратная связь неоценима. В частности, я хочу отметить работу GrygrFlzr, он поддерживал неофициальные документы и форк, и добавлял поддержку Windows, когда нам ее не хватало; и dominikg чья работа над Svite заложила фундамент для интеграции SvelteKit с Vite. Оба теперь приветствуются в команде.