Coder Social home page Coder Social logo

creat-component-app's Introduction

creat-component-app

Данная утилита позволяет забыть о ручном создании компонентов и импорте файла стилей компонента в главный файл стилей проекта.
Создано для совместного использования вместе с nunjucks, но может использоваться и в не его зависимости.
Если структура файлов и папок в вашем проекте другая, вы можете поменять пути в соответствии с вашей структурой.
По умолчанию создана определенная структура проекта.
Для демонстрации создан компонент и подключен файл стилей компонента в главный стилевой файл.


Папка проекта

  • Предпологается что папка с проектом будет как на примере ниже:
  • *если ваш проект выглядит иначе, вы всегда можете поменять пути в скриптах: componentSpawner.mjs и в injectStyles.mjs*
src
├── assets
│   └── styles
│       └── main.scss
└── templates
    └── components

Папка после добавления компонента:

  • после создания компонента структура папок и файлов с шаблонами меняется на:
src/templates
└── components
    └── MyFirstComponent
        ├── dependencies
        ├── MyFirstComponent.json
        ├── MyFirstComponent.njk
        └── MyFirstComponent.scss

Возможности

  • Скрипт для создания компонента с определенным набором файлов и папок
  • Скрипт для добавления @import 'path/to/component/component.scss'; в главный файл стилей в проекте проверяется существование указанной пользователем директории через консоль, если компонент с таким именем найден, то произволится добавление в main.scss файл импорта с полным путём до файла стилей компонента.

Использование:

  • скачиваем необходимые зависимости:
    • npm i
  • После установки зависимостей можно использовать.
  • Для просмотра команд можно ввести просто:
  • creat-component-app
  • Чтобы создать компонент, необходимо вызвать следующие команды:
    • creat-component-app create -n component_name
    • или
    • creat-component-app create --name component_name
  • Функция подставит название которое вы передали в командной строке и создаст на его основе необходимый набор файлов и папок.
  • Чтобы добавить @import 'componentName.scss'; до компонента в главный файл стилей необходимо ввести имя компонента, если скрипт его найдёт то добавит импорт стилей компонента в главный файл стилей, в противом случае выведет информацию об ошибке в консоль. Воспользуйтесь следующими командами:
    • creat-component-app import -s component_name
    • или
    • creat-component-app import --style component_name


Про пути

  • Пути для создания компонент можно поправить в файле componentSpawner.mjs
  • Пути для добавления импорта стилей компонента в главный файл стилей проекта можно править в файле injectStyles.mjs
  • в константе files находятся маски с переменными в которые будут записываться данные пришедшие от пользователя и расширениями для файлов

  • в константе directory находится путь до главной директории в маске передаётся переменная, в которую будет записываться название компонента исходя из полученных данных от пользователя.

  • Зачем нужны эти маски? Вместо обычных путей? Чтобы не писать вручную название файла, расширение и название папки компонента, данные подставятся после того как пользователь введёт их в консоли.

  • Маски выглядят следующим образом:

    • Директории: ./${name}/
    • Файлы: ${name}.njk


Удобства

  • Для удобства, опции и команды отделены.

creat-component-app's People

Contributors

ko2doo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.