Обновить

Комментарии 6

Автоматизировать генерацию компонентов — хорошая идея. Уверен, что если вы доработаете библиотеку и опубликуете в NPM, то она будет пользоваться популярностью. Пока вижу такие недостатки:
— Автокомплит путей не будет работать в терминале, так как скрипт запускается не из папки 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 и так далее. Я специально сделал максимально простую структуру для примера, файл всегда можно под себя изменить, это же очень легко сделать, у меня они во многих проектах разные

НЛО прилетело и опубликовало эту надпись здесь
Еще добавить возможность сделать REST запрос и по результатам возвращённого JSON сделать компонент базируясь на структуре этого JSON.

Это конечно очень далеко от реальности)

НЛО прилетело и опубликовало эту надпись здесь
Использую Plop для генерации шаблонов компонентов
Настраиваемый, фичастый, годится не только для React
github.com/plopjs/plop
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации