Skip to content

Commit

Permalink
from fbuilder: new doc
Browse files Browse the repository at this point in the history
  • Loading branch information
xziy committed Mar 4, 2023
1 parent 6870a40 commit b9c5bf3
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions content/en/docs/frontend-builder/docs/pjfm.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,28 @@ description: >
Работа с кастомными проектами фабрики
---

# PJFM - Project factory manager
# pjfm - Project factory manager

`npm i pjfm -g`

Основная задача `Project factory manager` вывести работу с фабрикой при производстве кастома к уровню обычной работы с проектом.

При инициализации билдер копирует файлы фабрики и создает проект, и все файлы нужные для начала.
При синхронизации билдер удаляет предыдущие файлы, и копирует новые компоненты и файлы фабрики в проект

Разработчик зная нюансы фабрики, и настройки компонентов, использует `рецепт сборки` чтобы билдер выступая в роли менеджера проекта выполнял синхронизацию компонентов фабрики. Например: Нужно поменять цвет у карточки блюда, разработчик поменяет его в `recipe.json` и выполнит комманду `fm sync` менеджер проекта выполнит перенос компонентов в нужные папки и проведет их модификацию.

Для реализации кастомных компонентов, страниц, сервисов и тд. разработчик должен быть внимателен что лежит в файле `.gitignore`, билдер при запуске sync проверит не менялись ли файлы, и спросит нужно ли добавить файл в гитигнор чтобы перезаписать, после чего выполнит `git commit -m "fm add file(s)"`

Все что находится в папке проекта но не отслеживается git (untracked) при кадом sync будет удалено.
Весь проект попадает в репозиторий `git` и создается файл `factory-lock.json`

Для того чтобы отслеживать изменения в файлах `fm` снимает хеши со всех (untracked) файлов они хранятся по умолчанию в папке `.tmp_factory` если ее удалить, то все неотслеживаемые файлы при следуешем sync будут удалены.
> ⚠️ Если файл `factory-lock.json` отсутсвует то можно попробовать провести синхронизацию с флагом `--force` при этом файлы новой сборки будут записаны поверх. *т.е. проект не будет очищен от старой сборки*
При каждой синхронизации проекта `fm sync` файлы файлы из lock удаляются и на их место заменяются файлами из фабрики учитывая файл `.factoryignore`

> ⚠️ Файлы которые не относятся к фабрике не нужно ставить в `.factoryignore` так как они не должны заменятся.
* Фабричные компоненты не будут попадать в репозиторий проекта. (будут добавлены в `.gitignore`)
Билдер при снихронизации не будет проверять файлы на изменения, но проверит что коммит выполнен, чтобы отключить проверку коммита используйте флаг `--force`

todo:
* Если файл попадает в репозиторий то билдер пропустит блок инвентори рецепта,

## Multi project
If `projects-dir` defined in .factoryrc file is multiproject repo
Expand All @@ -47,4 +50,4 @@ todo:
"projectsDir": "projects" // Path for multiproject [if defined is multiproject repo]
}
```
```

0 comments on commit b9c5bf3

Please sign in to comment.