Как стать автором
Обновить

Мажорный MeteorJS 2.0: HMR, Cloud и другое

Время на прочтение3 мин
Количество просмотров2.8K

Свершилось! Команда Meteor выпустила версию 2.0, которая была в разработке последние пол года. Посмотрим, что нового внутри и снаружи. Так же поделюсь полезными материалами по теме.

Кратко о том, что такое Meteor:

Meteor это full-stack JavaScript фреймворк, включающий практически все, что нужно для разработки полноценного веб приложения:

- zero-config сборщик, умеющий работать с JS/TS, минифицировать, разделять сборки для старых и новых браузеров, транспилировать код до ESNext;

- возможность подключить на выбор React, Vue, Angular, Svelte, Blaze - любой инструмент, подходящий вам для разработки клиентской части приложения;

- готовый транспортный слой(DDP) поверх WebSocket, и вызов серверных функций через RPC;

- встроенная поддержка MongoDB, но можно работать и с другими бд;

- Meteor построен на основе NodeJS, поэтому доступно все то, что есть в NPM.

Попробовать метеор

Что нового в 2.0

Hot Module Replacement (HMR)

Meteor умеет пересобирать сборки(клиентскую и серверную), если обнаруживает изменения в коде. Однако, это может занимать достаточно много времени, если размер кодовой базы большой.

HMR позволяет быстрее увидеть изменения, так как подменяет JavaScript модули "на лету" не дожидаясь окончательной сборки приложения. При этом не нужно обновлять страницу или перезапускать приложение.

React компоненты обновляются автоматически, используя React Fast Refresh. Для других библиотек необходимо использовать сторонние решения. Поддержка Blaze (ui библиотека от Meteor) в процессе разработки.

PR с кодом

Meteor Cloud, Free tier

В последнее время команда Метеора нацелена на объединение различных продуктов компании, чтобы они выглядели как часть одного целого. Хостинг Galaxy Hosting, менеджер пакетов Atmosphere и мониторинг производительности Meteor APM теперь стали частью одной семьи Meteor Cloud. На блоге компании есть статья, подробно описывающая приход к Meteor Cloud.

Куда более значимым изменением стало возвращение бесплатного хостинга!

Теперь можно деплоить приложение одной командой:

meteor deploy habr.meteorapp.com --free

А если вам нужна бесплатная MongoDB, то добавляем --mongo

meteor deploy habr.meteorapp.com --free --mongo

Бесплатный хостинг отлично подходит для:

  • демонстрации ваших пакетов: теперь не нужны отдельные хостинги, а залить/обновить демо дело одной команды;

  • запуска MVP: если у вас маленькие нагрузки и объемы, то можно временно разместиться на бесплатном плане. В дальнейшем можно переключиться на платный или сменить площадку.

Остальное

  • В версии 1.12 обновили TypeScript до 4.1.2 с поддержкой декораторов. Напомню, что метеор сам умеет собирать typescript проекты. Вам нужен tsconfig только для вашей IDE!(иногда нужно изменить поведение сборщика, например aliases, это можно сделать с помощью babelrc, так как под капотом метеор использует babel)

  • Пакет httpсчитается устаревшим. Используйте fetch.

  • Можно задавать поля и БД, которые автоматически будут пушиться на клиент после авторизации. PR.

    Вместо

    // Server
    Meteor.publish('userData', function () {
      if (this.userId) {
        return Meteor.users.find({ _id: this.userId }, {
          fields: { other: 1, things: 1 }
        });
      }
      
      this.ready();
    });
    
    // Client
    Meteor.subscribe('userData');

    Достаточно

    // Server
    Accounts.setDefaultPublishFields({ other: 1, things: 1}); // + username:1,profile:1,emails:1 если нужно

Что дальше?

Дальше Tree Shaking, удаление устаревшего кода и другое.

Статьи и ссылки

Why choose Meteor (or not) for your next project? (eng)

После публикации результатов StateOfJS 2020(кстати, сам сайт написан на метеор-е) внутри комьюнити метеор-а завязалась дискуссия насчет позиции Meteor в рамках опроса. Кто-то увидел крах метеора, кто-то - надежду. Один из активных участников форума Jan Küster написал хорошую статью по поводу того, кому подходит метеор.

Ссылка на статью

Добавляем поддержку PWA

Репозиторий содержит step-by-step инструкции по подготовке и настройке вашего метеор проекта. Тема PWA достаточно популярна сейчас, поэтому обязательно посмотрите. Из плюсов выделю поддержку Hot Code Push (читай "непрерывное обновление приложения"), возможность создать приложение для Windows/OSx/Linux без electron-a.

Awesome Meteor List

Данный топик на форуме содержит список полезных ссылок. Инструменты, статьи, книги, компании, использующие Meteor.

Присоединяйтесь к сообществу метеора в Slack (eng) или Telegram (рус).

Теги:
Хабы:
+7
Комментарии11

Другие новости

Истории

Работа

Ближайшие события