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

JavaScriptNode.JSMeteor.JS

Свершилось! Команда 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 (рус).

Теги:meteormeteorjsjavascriptreacttypescriptnodejsmongo
Хабы: JavaScript Node.JS Meteor.JS
+7
897 1
Комментарии 11

Похожие публикации

JavaScript/Node.js
от 80 000 до 120 000 ₽SipuniМожно удаленно
Требуется JavaScript / React разработчик
от 50 000 ₽IT-AcesМожно удаленно
JavaScript Разработчик (Fullstack)
от 6 000 $FingerprintJSМожно удаленно
Senior JavaScript разработчик (React/Redux + Node.js + Vue/Angular)
от 3 000 до 3 500 $ArtezioМинскМожно удаленно
Javascript разработчик
от 130 000 до 180 000 ₽ArtezioНижний Новгород

Лучшие публикации за сутки