swc-plugin-react-source
v0.1.1
Published
SWC plugin for add source attribute to dom nodes
Maintainers
Readme
Плагин для swc, аналогичный babel-plugin-react-source
Что плагин делает?
Добавляет проп "source" для блоковских компонентов и "data-source" для html-тегов и компонентов из настраиваемого списка библиотек
В папке tests/fixtures есть input и output
Как прогнать тесты?
- Настроить среду разработки (установить Rust, swc_cli, *rust-analyzer для vscode)
- Запустить в корне проекта
cargo test - * Команда
UPDATE=1 cargo testобновляет снапшоты
Как подключить этот плагин к сборке реального проекта для тестирования?
- Ваш проект должен использовать builtin:swc-loader
Вариант 1 - простой
Собираем плагин командой
cargo build --target wasm32-wasi --release(в корне плагина)Создаем ссылку
yarn link(в корне плагина)Подключить плагин в нужном проекте
yarn link swc-plugin-react-source(в папке с твоим проектом)В options для builtin:swc-loader в rspack.config проекта нужно добавить плагин
{
"jsc": {
"experimental": {
"plugins": [
['swc-plugin-react-source', {}]
]
}
}
}Собрать проект с подключенным пакетом
yarn buildПосмотреть на собранный код проекта. Там будут source и data-source, если все подключилось правильно
* После внесения изменений в код плагина можно снова его собрать (пункт 1). Твой проект, куда прилинкован пакет с плагином, будет всегда использовать последнюю собранную версию
Вариант 2 - для xhh на стенде
Собираем плагин командой
cargo build --target wasm32-wasi --release(в корне плагина)Собираем в пакет
yarn pack(в корне плагина), появляется файл .tgz. Этот файлик надо положить на стенд, если хочешь подключить плагин к сборке на стенде.В проекте, куда хотим установить плагин, запускаем
yarn add /<абсолютный_путь_до_пакета>/swc-plugin-react-source<версия>.tgzДальше всё как в Варианте 1, смотри пункт 4
Что тут внутри?
src/lib.rs - основной файл
src/utils.rs - вспомогательные функции
tests/test.rs - юнит-тесты плагина
tests/fixtures - файлики с js исходниками, которые используются для тестирования плагина
Как настроить плагин?
В options можно передать объект со списком libraries
Если передать пустой объект, то по умолчанию плагин подставит туда ['magritte']
['swc-plugin-react-source', {
libraries: ['magritte', 'another_one']
}]