Babel plugin
Встроенный плагин для babel, который можно использовать для ssr и отладки. Он вставляет имя юнита, выводимое из имени переменной, и sid
(стабильный идентификатор), вычисляемый по расположению в исходном коде.
К примеру, в случае эффектов без обработчиков, это улучшит сообщение об ошибке, четко показывая, в каком эффекте произошла ошибка
#
ИспользованиеВ простейшем случае его можно использовать без какой-либо настройки:
#
.sidnote
Добавлено в effector 20.2.0
Стабильный идентификатор для событий, эффектов, сторов и доменов, сохраняемый между окружениями, для обработки клиент-серверного взаимодействия в рамках одной кодовой базы.
Ключевым примуществом является то, что sid может быть автоматически сгенерирован через effector/babel-plugin
с конфигурацией по умолчанию и будет стабилен между сборками
#
Конфигурация#
importName
importName: string | string[]
Имя импорта, которые будут обрабатываться плагином. По умолчанию имеет значение ["effector", "effector/compat"]
#
addLoc
addLoc: boolean
Добавляет местоположение к вызовам методов. Используется инструментами для разработчиков, например, effector-logger
#
reactSsr
reactSsr: boolean
note
Добавлено в effector 21.5.0
Заменяет импорты из effector-react
на effector-react/ssr
. Полезно для создания серверных и клиентских сборок из одной и той же кодовой базы
#
factories
factories: string[]
note
Добавлено в effector 21.6.0
Принимает массив имен модулей, экспорты которых будут рассматриваться как пользовательские фабрики, и каждый вызов таких фабрик будет иметь уникальный префикс для сидов юнитов внутри них. Применяется для реализации SSR, для чисто клиентского приложения не требуется
Фабрики могут иметь любое количество аргументов
Фабрики могут создавать любое количество юнитов
Фабрики могут вызывать любые эффекторные методы
Фабрики могут вызывать другие фабрики из других модулей
Модули с фабриками могут экспортировать любое количество функций
Фабрики должны быть скомпилированы с
effector/babel-plugin
, как и код, который их использует
#
ПримерИмпорт createEffectStatus
из './createEffectStatus'
рассматривается как фабричная функция, поэтому каждый созданный ею стор получит свой собственный sid и будет обрабатываться serialize независимо, в то время как без factories
они все будут иметь один и тот же sid
#
addNames
addNames: boolean
note
Добавлено в effector 21.8.0
Добавляет имена к вызовам фабрик юнитов. По умолчанию имеет значение true
. Отключение применяется для минификации и обфускации производственных сборок
#
noDefaults
noDefaults: boolean
note
Добавлено в effector 20.2.0
Опция для effector/babel-plugin для создания пользовательских фабрик юнитов с чистой конфигурацией, изначально не делающей ничего
note
Оптимальнее использовать factories