Home » Mako теперь с открытым исходным кодом

Mako теперь с открытым исходным кодом

2024-06-28 от извинисс

Китайская версия: «Мако имеет открытый исходный код»

Привет, я извиняюсьcc, один из главных мейнтейнеров Mako, а также создатель Umi, Dva, Father и других библиотек. Я рад сообщить, что Mako наконец-то стал открытым исходным кодом, URL-адрес Github https://github.com/umijs/mako/ и я рад официально представить его вам сегодня.

Что такое Мако?

Mako — это «чрезвычайно быстрый» и «производственный» инструмент для сборки интерфейса, основанный на Rust.

Аспект «чрезвычайно быстрого» был нашей первоначальной мотивацией для начала проекта Mako. Без проблем со скоростью сборки Mako был бы не нужен. Обратитесь к разделу «Тест производительности» ниже для некоторых данных, и мы постоянно изучаем еще более быстрые решения для скорости сборки. Метка «производственного уровня» появилась из-за того, что с 2023.11.24 Mako был официально выпущен внутри Ant Group. Он был проверен инженерными практиками на тысячах проектов и всех используемых пакетах npm и их версиях. Он был внедрен в сотни проектов, обслуживая различные платформы и бизнес-сценарии внутри, включая бэкэнды управления, мини-программы, H5 Mobile, low-code, маркетинг, библиотеки компонентов, упаковку компонентов, бессерверные функции и т. д., демонстрируя полностью производственные возможности.

Вы можете посетить https://makojs.dev/docs/features чтобы узнать больше о возможностях Mako.

Как появился Мако?

В прошлом году (2023.3) наша команда запустила 3 ​​проекта: Rust, SSR и AIG, и мы взяли направление Rust на себя, чтобы решить проблемы производительности сборки. Наша команда изучает решения для более быстрой скорости сборки, включая МФСУкоторый оптимизирует скорость сборки в Webpack. Однако это имело определенные ограничения. Мы искали основательное решение через Rust.

Вы можете задаться вопросом, почему мы не использовали существующие инструменты Rust, а решили создать свой собственный. Причины сложны. Например, 1) уровень зрелости библиотек сообщества и их совместимость с потребностями Ant, мы исследовали все решения по сборке Rust сообщества, прежде чем начать, в конечном итоге решив создать свой собственный, 2) наличие контроля, из-за деловых причин, инструменты сборки в Ant требуют большой настройки, и это оказалось правдой, поскольку мы обнаружили много соответствующих потребностей после внутреннего релиза, 3) современные мета-фреймворки требуют фреймворков времени компиляции, в дополнение к сборке, у них также есть много потребностей в компиляции, особенно в сценариях SSR и RSC, например, сценарии RSC требовали 4 внутренних сборок, 4) необходимость изучать Rust и для роста команды, современные инструменты фронтенда все написаны на Rust, и мы бы отстали, если бы не продвигались вперед.

Read more:  Разлив нефти на Миндоро достиг 3 барангаев в антиквариате - Philstar.com

Приведенная выше временная шкала относится к Mako. Mako стартовал в 2023.3, имел свою первую пригодную для использования версию к 2023.7, был выпущен внутри Ant в 2023.11 и был открыт к 2024.6. Изначально у нас было 3 участника с нулевым опытом работы с Rust, члены команды, особенно виртуальная команда, приходили и уходили, изучение Rust во время усвоения знаний по сборке и работе над Mako было сложным, но, к счастью, мы преуспели и многому научились в процессе. Мы хотели бы поблагодарить пионеров в области сборки, таких как Webpack, Farm и Rspack, а также ChatGPT.

Скорость

Mako вложила много усилий в скорость. Ниже приведены некоторые контрольные данные.

Тестирование проводилось на проекте, который также тестирует Turbopack, на Mac Book Pro M2 Max. Оно включает такие измерения, как время холодного запуска разработки, время HMR корневого и конечного узлов, время сборки производственной сборки и размер пакета JS. (Примечание: Farm не был успешно опробован в режиме API, поэтому данные HMR не были сгенерированы; у RsBuild возникли некоторые проблемы с обновлением до 0.7, поэтому пока он все еще на 0.6. RsBuild 0.7 может быть немного быстрее.)

Если вам интересно, смело клонируйте репозиторий и попробуйте сами.

$ git clone [email protected]:umijs/benchmark.git
$ cd benchmark
$ pnpm i
$ pnpm run setup
$ pnpm benchmark

Вот как мы выглядим в сравнении с собой прежними.

Для полной сборки проекта Ant Design Pro Webpack требуется 16 с, Mako — 3,9 с, что в 4 раза быстрее.

Для полной сборки проекта Ant Design Pro Mako почти всегда предоставляет актуальные обновления в режиме реального времени.

Сборка проекта Smallfish Intranet Hybrid framework, на основе RSC (React Server Components), scaffold project, время сборки сокращено с 36,7 с до 1,2 с. Выглядит немного преувеличенно, но это реальные данные.

Read more:  В апартаментах Ferrybank теперь будут кафе и винный бар

Это еще несколько примеров повышения скорости в подобных проектах RSC.

Кроме того, Mako также имеет экспериментальную функцию SSU, похожую на предыдущую реализацию MFSU, которая выполняет упаковку и кэширование зависимостей. В зависимости от соотношения исходного кода и зависимостей, она может достигать 10-50-кратного увеличения скорости в горячем запуске Dev. В настоящее время ее можно включить с помощью SSU=true переменная окружения.

Как принять участие?

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

$ npm create mako

Если вы являетесь пользователем Umi, то опробовать Mako очень просто!

# Make sure your version is 4.2.0 or above
$ npx umi -v
4.2.0
# Enable Mako configuration
$ npx umi config set mako {}
# Run build or other commands
$ npx umi build

Если вы хотите обсудить вопросы или предложения по поводу Mako, вы можете отсканировать QR-код, чтобы присоединиться к нашей группе WeChat. (Если срок действия истек или группа заполнена, перейдите по ссылке https://makojs.dev/docs/feedback для нового QR-кода.)

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

https://t.me/+EN3fycCw3TI1NDA1

Также вы можете подписаться на обновления Mako через RSS. Мы будем публиковать последние новости о Mako и высококачественные технические статьи, связанные со строительством.

https://makojs.dev/rss.xml

Если вы хотите принять участие в проекте Mako с открытым исходным кодом, вы можете посетить https://github.com/umijs/mako и ВНОСИМЫЙ документ чтобы узнать больше. Любой, кто отправил PR на исправление ошибок или функцию, может присоединиться к группе разработчиков Mako DingTalk.

Если вы планируете активно продвигать и применять Mako в своей компании или разрабатывать разработки на основе Mako, вы можете связаться с нами (почта:[email protected]) для обсуждения. Мы можем предоставить соответствующее обучение, консультации и более своевременные услуги поддержки.

Read more:  «The Tribe Must Survive» теперь в раннем доступе Steam®

Вопросы и ответы в прямом эфире

Сегодня вечером (28 июня 2024 г.) в 21:00 мы проведем прямую трансляцию вопросов и ответов по Bilibili, ссылка для бронирования доступна по адресу https://t.bilibili.com/947260122376175622. Мы приглашаем всех принять участие, и вы можете спросить что угодно о Мако. Если у вас есть вопросы о Мако, вы можете заполнить анкету заранее на https://docs.qq.com/form/page/DY2Z6VndTRXBpR1Nh.

Благодарности

Выпуск Mako был бы невозможен без каждого участника, особенно учитывая, что большинство из них участвовали в свое свободное время. Спасибо!

И многие авторы библиотек зависимостей сообщества!

  • вебпаккоторый вдохновил Мако на множество идей.
  • swc к @when1который обеспечивал синтаксический анализ, преобразование и генерацию кода Mako.
  • ферма к @brightwuкоторый вдохновил на создание тряски деревьев, системы плагинов и других элементов Mako.
  • rspackчто вдохновило Мако на создание тряски деревьев.
  • oxc-резольвер к @Бошен который питал преобразователь Мако.
  • Бык с к @Бошен Благодаря этому мы узнали много нового о том, как эффективно разрабатывать с помощью Rust.
  • биом к @ematipico Благодаря этому мы узнали много нового о том, как эффективно разрабатывать с помощью Rust.

Авторские права © 2024-настоящее время

2024-07-02 05:41:25


1719905045
#Mako #теперь #открытым #исходным #кодом

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.