
Микро-интерфейсы: использование модулей окружения TypeScript
24 декабря 2022 г.Я работаю над проектом, в котором мы разбиваем монолитное приложение на серию микрофронтендов, используя single-spa. Single-Spa — это фреймворк микроинтерфейса.
Наш проект использует внешние веб-пакеты для обработки определенных зависимостей как встроенных в браузер модулей. Это означает исключить их во время сборки и ожидать, что браузер предоставит их во время выполнения.
Single-spa предоставляет отличную документацию о том, как этого добиться.
Проблема, с которой я столкнулся, заключается в том, что ваша IDE не знает об этой настройке во время разработки.
На изображении выше моя IDE показывает предупреждение «Модуль не установлен».
Это связано с тем, что @effectv-platform/ep-ui-auth
— это микроинтерфейс. Я импортирую экспортированную функцию из этого микроинтерфейса под названием useAuth
. Это не пакет, опубликованный в npm, объявленный в package.json проекта и установленный в папке проекта node_modules.
Этот модуль является встроенным в браузер модулем, предоставляемым картой импорта.
Вы можете опубликовать свои микроинтерфейсы в менеджере репозитория и объявить их в вашем package.json. Это установит их в вашу папку node_modules, и ваша IDE будет счастлива.
В качестве альтернативы можно использовать функции «окружающего» модуля TypeScript.
Вы создаете файл <name>.d.ts
в своем проекте и добавляете объявление для этого модуля. Файл должен заканчиваться на .d.ts
. Вы также можете экспортировать интерфейсы и функции из объявления этого модуля.
У нас был существующий файл node.d.ts
в нашем проекте. Я обновил этот файл, включив в него приведенный ниже код. Этот код добавляет объявление для модуля @effectv-platform/ep-ui-auth
.
declare module '@effectv-platform/ep-ui-auth'{
export function useAuth(): {signIn, signOut};
}
Недостатком этого подхода является то, что вы должны определить и поддерживать этот файл объявления в каждом микроинтерфейсе, который в нем нуждается. Это нарушает принцип «Не повторяйтесь» (DRY) и может привести к проблемам с обслуживанием.
Для простых сценариев и при первом планировании проекта это может быть приемлемо.
Оригинал
Recent Post
-
В чем разница между path.join() и path.resolve()?
5 апреля 2023 г. -
Правильный способ использования Webpack для объединения HTML-страницы с CSS и JS
14 февраля 2023 г. -
Оптимальная связь между микрофронтендами и кросс-микрофронтенд-оптимизация
7 февраля 2023 г. -
Почему микрофронтенды — это будущее фронтенд-разработки
20 октября 2022 г. -
Что нужно для создания простой таблицы JavaScript в 2022 году
14 марта 2022 г.
Categories
- Python
- blockchain
- web
- hackernoon
- вычисления
- вычислительные компоненты
- цифровой дом
- игры
- аудио
- домашний кинотеатр
- Интернет
- Мобильные вычисления
- сеть
- фотосъемка видео
- портативные устройства
- программного обеспечения
- телефон и связь
- телевидение
- видео
- мир технологий
- умные гиды
- облако
- искусственный интеллект
- се
- Samsung
- умные города
- digitaltrends
- отели
- Startups
- Venture
- Crypto
- Apps
- безопасность
- техника и работа
- cxo
- мобильность
- разработчик
- 5г
- майкрософт
- инновации
- Права и свободы
- Законодательство и право
- Политика и общество
- Космическая промышленность
- Информационные технологии
- Технологии
- Образование
- Научные исследования
- Автомобильная промышленность
- Программная инженерия
- IT и технологии
- Веб-разработка
- Программирование
- Автоматизация
- Карьерный рост
- Программирование и анализ данных
- Трудоустройство
- Политика
- Искусственный интеллект
- ИТ-технологии
- Программное обеспечение
- Экологическая политика
- Образование и рынок труда
- Политика и право
- Microsoft Teams и SharePoint
- Информационная безопасность
- Кибербезопасность
- Налоги
- Образование и карьера
- Интернет и технологии
- Технологии, Государственные услуги
- Политика и технологии
- Разработка программного обеспечения
- Разработка ПО
- Машинное обучение
- Налогообложение, технологии, открытый исходный код
- Финансы и налоги
- Технологии, Интернет, Экология
- Интернет, безопасность
- Технологии и политика
- Операционные системы
- Профессиональная разработка
- Технологии, Безопасность
- Интернет и общество
- Финансовая индустрия
- Налоговый учёт
- Общественное здравоохранение
- Технологическая отрасль
- Юриспруденция
- Технологии и государство
- Здоровье и фитнес
- IT-инфраструктура
- Технологии и ИИ
- Здравоохранение
- IT
- Технологии, Экономика
- Музыка и технологии
- Здоровье и питание
- IT и безопасность
- Бизнес и предпринимательство
- Технологии, Программное обеспечение
- Технологии и инновации
- Технологии, данные, этика
- Технологии и Интернет
- Технологии и SaaS
- Медицина и здравоохранение
- Онлайн-видеосервисы
- Финансы и технологии
- Чтение и саморазвитие
- Экономика и бизнес
- Безопасность данных
- Удаленная работа
- Авиация и технологии
- Технологии, Игры
- Энергетика
- Социальные сети, безопасность, технологии
- Саморазвитие
- Безопасность информации
- Бизнес и карьера
- Технологии и отношения
- Игровая индустрия
- Компьютерная индустрия
- Математика, Искусственный интеллект
- Наука и технологии
- Технологии и безопасность
- Технологии, Удаленная работа, Бизнес
- Видеоигры
- Технологии, Искусственный интеллект, Этика
- Технологии, социальные сети, 6G
- Технологии, Программирование, AI, Разработка ПО
- Программирование, Разработка ПО, Технологии
- Животные
- Технологии, Искусственный интеллект
- Программирование, карьера, технологии, обучение
- Бизнес и технологии
- Технологии, Безопасность данных
- Астрономия и физика
- Продуктивность, личное развитие
- Медиа и Технологии
- Программирование и Искусственный Интеллект
- Социальные сети
- Политика и экономика
- Технологии, Медицина, Искусственный интеллект
- Технологии и управление
- Космос и астрономия
- Общество и политика
- Космические исследования
- Веб-дизайн
- Искусственный интеллект и безопасность данных
- Технологии, Безопасность, Конфиденциальность
- Экологическая проблема
- Технологии, Погода
- Авиация
- Транспортная сфера
- Технологии и бизнес
- Игровая промышленность
- Телевидение и реклама
- Аналитика данных
- Технологии и кибербезопасность
- Маркетинг
- Технологии и гаджеты
- Технологии, Авиация, Инновации
- Финансы и инвестиции
- Технологии и общество
- Рыночный анализ
- Космология
- Данные и бизнес
- IT и программирование
- Технологии и право
- Программирование и разработка
- Медицинские технологии
- Авиационная промышленность
- Технологии и искусственный интеллект
- Генетическая инженерия
- Бизнес и инвестиции
- Компьютерная промышленность
- Психология и социология
- Образование и технологии
- Рынок труда
- Технологии, Стартапы
- Технологии, Приватность, Чтение
- Маркетинг и продажи
- Виртуальная реальность
- Технологии, Смартфоны, Маркетинг
- Технологии, Бизнес, Личностный рост
- Экологические проблемы
- Экономика и технологии
- IT и карьера
- Интернет и безопасность
- Разработка и технологии
- Биотехнологии
- Интернет-магазины, кибербезопасность
- Финансы
- Безопасность и технологии
- Экономика
- Защита данных
- Data Science
- Карьера и работа
- Финансовый успех, мошенничество, маркетинг
- Безопасность
- Экология
- Космическая индустрия
- Программирование, Python, Обучение
- Технологии искусственного интеллекта
- Технологии, Дизайн, iOS
- Программирование, DevOps, Kubernetes
- Социальные сети и пропаганда
- Корпоративная этика
- Управление IT-инфраструктурой
- Здоровье и медицина
- Медицина
- Медицинская промышленность
- Разработка и дизайн
- Искусственный интеллект, Диагностика систем
- Образование и психология
- Технологии, Автомобильная промышленность
- Автомобили и путешествия
- Астрономия и космология
- Программирование и технологии
- IT, работа в офисе, эмоциональный интеллект
- Компьютерная техника
- Здоровье и благополучие
- Управление персоналом
- Политика и управление
- Бизнес и экономика
- Социальные сети, Пропаганда, Информационная безопасность
- Технологии и автоматизация