Pull to refresh

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

UFO landed and left these words here
Еще добавить возможность сделать REST запрос и по результатам возвращённого JSON сделать компонент базируясь на структуре этого JSON.

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

UFO landed and left these words here
Использую Plop для генерации шаблонов компонентов
Настраиваемый, фичастый, годится не только для React
github.com/plopjs/plop
Sign up to leave a comment.

Articles