Прошло полгода после выпуска umi 1.0. За это время umi провела много рефакторинга и улучшений, 438 коммитов, 20 бета-версий. И сегодня мы очень рады, что она выпустила версию 2.0 и позиционируется как подключаемая среда для приложений реагирования на уровне предприятия.
Что такое уми?
Он основан на маршрутизации, поддерживает обычную маршрутизацию наподобие next.js и различные расширенные функции маршрутизации, такие как загрузка по требованию на уровне маршрутизации. Затем с полной системой плагинов, охватывающей каждый жизненный цикл от исходного кода до создания продукта, umi может поддерживать различные функциональные расширения и бизнес-потребности, в настоящее время umi имеет почти 50+ плагинов как в сообществе, так и внутри компании.
umi - это базовая интерфейсная структура Ant Financial, которая прямо или косвенно обслуживает более 600 приложений, включая java, node, мобильное приложение, гибридное приложение, приложение с чистыми интерфейсными ресурсами, приложение CMS и многое другое. umi очень хорошо обслуживает наших внутренних пользователей и надеется, что он также сможет хорошо обслуживать внешних пользователей.
Он имеет следующие особенности:
- 📦 Из коробки , встроенная функция реагирования 、 реагирующий маршрутизатор и т. Д.
- 🏈 Такие как Next.js и полнофункциональные соглашения о маршрутизации, также поддерживают настроенную маршрутизацию.
- 🎉 Полная система плагинов, охватывающая все жизненные циклы от исходного кода до производства.
- 🚀 Высокая производительность, поддержка PWA, разделение кода на уровне маршрута и т. Д. Через плагин
- 💈 Поддержка статического экспорта, адаптация к различным средам, таким как консольное приложение, мобильное приложение, яйцо, кошелек Alipay и т. Д.
- 🚄 Быстрый запуск разработчика, поддержка включения dll и hard-source-webpack-plugin с конфигурацией
- 🐠 Совместимость с IE9 на основе umi-plugin-polyfills
- 🍁 Поддержка TypeScript, включая определение d.ts и
umi test
- 🌴 Глубокая интеграция с два, поддержка утиного каталога, автоматическая загрузка модели, разбиение кода и т. Д.
Что нового в версии 2.0?
Легкое ядро и удобство для новичков
umi @ 1 имеет множество встроенных оптимизаций, таких как компиляция по требованию, загрузка по требованию, eslint, pwa, antd и т. д. Эти решения могут улучшить опыт разработки и производственный код, а также снизить стоимость изучения umi.
Итак, umi @ 2 по умолчанию отключает многие оптимизации:
- Компилировать по запросу
- Загрузка по запросу
- serviceWorker
- antd
- …
Затем эти функции реализуются с помощью плагинов, которые можно включать по мере необходимости, чтобы обеспечить легкость ядра umi. В то же время сборка по умолчанию создает только index.html, umi.js и umi.css, что более удобно для новичков.
Новая система плагинов
Система плагинов umi @ 1 слишком мощная, все можно сделать и изменить. Итак, umi @ 2 реорганизовал механизм плагина, наложил множество ограничений, разъяснил, что можно сделать, а что нельзя, и предоставил более удобный API плагина.
В то же время эта система плагинов прошла внутреннюю проверку в нашей компании. Отличная внутренняя структура Bigfish, состоящая из более чем 30 плагинов, хорошо обслуживает Ant Financial, включая такие функции, как бекон, развертывание с помощью java / node, производительность, интеграция служб, разрешения и т. Д.
umi-plugin-реагировать
Плагин для umi @ 1 немного шаткий. Обычно при использовании umi требуется установить несколько плагинов. Обновление и использование проблематично, поэтому мы предоставляем umi-plugin-react. umi-plugin-react - это набор плагинов, аналогичный концепции пресетов в babel.
В настоящее время в umi-plugin-react есть 13 плагинов, в том числе:
- Два интегрировать
- Antd интегрировать
- Модификация маршрутов
- IE (9/10/11) совместимость
- Традиционное решение i18n
- Переключить реакцию на preact или другие библиотеки
- Разделение кода на уровне маршрута, и уровень может быть настроен
- Boost dev с помощью dll
- Ускорьте разработку с помощью hard-source-webpack-plugin
- Включить PWA
- Включить решение HD
- Включить fastClick
- Подтверждение названия поддержки
Пожалуйста, проверьте umijs.org/plugin/umi-plugin-react.html для получения подробной информации.
Webpack @ 4 + babel @ 7 +…
Мы обновили основные зависимости до последней версии, такие как webpack @ 4, babel @ 7, less @ 3, postcss @ 7, typescript @ 3 и т. Д., А также улучшили производительность сборки.
И мы использовали webpack-chain для расширения конфигурации webpack, что является более стабильным решением, чем предыдущий webpack.config.js
.
e.g.
export default { chainWebpack(config, { webpack }) { // Set alias config.resolve.alias.set('a', 'path/to/a'); // Remove the default progress bar config.plugins.delete('progress'); }, }
umi generate
umi @ 2 поддерживает команду umi generate
(псевдоним umi g
) для быстрого создания файлов.
$ umi g page index
И umi generate
расширяется. Например, umi-plugin-dva расширяет ключ dva:model
, поэтому мы можем сгенерировать модель dva с umi g dva:model global
.
Прочие улучшения
- Настройка переменных среды с помощью
.env
и.env.local
- Поддерживает расширение маршрутной информации обычной маршрутизации с помощью комментариев в формате
yaml
- Улучшенная страница umi dev 404
- Рефактуйте
umi/dynamic
с помощью react-loadable - Улучшить
umi test
, позволяет указывать тестовые файлы и передавать параметры в jest-cli - Улучшение
umi test
, поддерживает псевдонимы веб-пакетов - Улучшение
umi dev
, поддерживает настройку сертификатов https - Улучшение
umi dev
, извлечение стилей, затем использование css-hot-loader для горячих обновлений в соответствии сumi build
- Включите es5ImcompatibleVersions по умолчанию.
- Удалите высокопроизводительный потребительский плагин с учетом регистра-путей-webpack-plugin
- Добавьте псевдоним webpack
@
, который указывает на каталогsrc
- Используйте локальный umi для запуска, если он найден
Начиная
Начать очень просто,
# Install deps $ yarn global add umi # OR npm install -g umi # Create application $ mkdir myapp && cd myapp # Create page $ umi generate page index # Start dev server $ umi dev # Build and deploy $ umi build
Посетите umijs.org/guide/getting-started.html для получения более подробной информации или посмотрите 10-минутную видео-версию umi.
Переход с umi @ 1
В настоящее время antd-pro и antd-admin обновлены до umi @ 2. Если вы хотите обновиться, просмотрите документацию или видео.
Сообщество
Telegram Group
T.me/joinchat/G0DdHw-44FO7Izt4K1lLFQ
Наконец
Спасибо всем внутренним и внешним людям, которые участвовали в создании umi и использовании umi в проекте. umi только начинается, надеюсь, вы сможете улучшить его вместе, до встречи на Github! 👋