Comments 6
Автоматизировать генерацию компонентов — хорошая идея. Уверен, что если вы доработаете библиотеку и опубликуете в NPM, то она будет пользоваться популярностью. Пока вижу такие недостатки:
— Автокомплит путей не будет работать в терминале, так как скрипт запускается не из папки src. В angular-cli тоже есть такая проблема — на проектах с большим количеством папок и компонентов легко промахнуться, создав компонент не там где нужно из-за опечатки.
— Неплохо бы добавить поддержку TypeScript, CSS модулей или вообще дать возможность использовать собственные файлы-шаблоны. Например, я не использую дефолтные экспорты (причины) и не вижу смысла в создании индексных файлов для каждого компонента. Один из способов решения — дать пользователю возможность создавать свои функции для генерации компонентов:
Эту функцию уже может вызывать ваша библиотека, выполняя оставшуюся часть работы. С таким подходом пользователь библиотеки сможет добавить поддержку Less, Styled Components, Flow и любого другого инструмента, не дожидаясь пока библиотека это реализует.
— Автокомплит путей не будет работать в терминале, так как скрипт запускается не из папки src. В angular-cli тоже есть такая проблема — на проектах с большим количеством папок и компонентов легко промахнуться, создав компонент не там где нужно из-за опечатки.
— Неплохо бы добавить поддержку TypeScript, CSS модулей или вообще дать возможность использовать собственные файлы-шаблоны. Например, я не использую дефолтные экспорты (причины) и не вижу смысла в создании индексных файлов для каждого компонента. Один из способов решения — дать пользователю возможность создавать свои функции для генерации компонентов:
export function generateComponent(createFile, fileName) {
createFile(`${fileName}.scss`, `.wrapper {}`);
const componentCode = ...
createFile(`${fileName}.tsx`, componentCode)
}
Эту функцию уже может вызывать ваша библиотека, выполняя оставшуюся часть работы. С таким подходом пользователь библиотеки сможет добавить поддержку Less, Styled Components, Flow и любого другого инструмента, не дожидаясь пока библиотека это реализует.
Сделать библиотеку неплохая идея. Если этого не сделают до меня, то можно попробовать как-нибудь.
По поводу автокомплита и ошибок. Я чаще всего создаю компонент прям в корень (project/src/
), а потом перетаскиваю мышкой в нужное место, так быстрее всего.
По поводу поддержки TS и так далее. Я специально сделал максимально простую структуру для примера, файл всегда можно под себя изменить, это же очень легко сделать, у меня они во многих проектах разные
Использую Plop для генерации шаблонов компонентов
Настраиваемый, фичастый, годится не только для React
github.com/plopjs/plop
Настраиваемый, фичастый, годится не только для React
github.com/plopjs/plop
Sign up to leave a comment.
Пишем собственный CLI для React