@prizm-ui/nx-mv
v5.0.0
Published
Этот Nx генератор предназначен для обновления файлов проектов в рабочем пространстве на основе заданной конфигурации и схемы. Он позволяет автоматизировать процесс замены и модификации файлов в проектах.
Downloads
593
Readme
@prizm-ui/nx-mv:apply
Этот Nx генератор предназначен для обновления файлов проектов в рабочем пространстве на основе заданной конфигурации и схемы. Он позволяет автоматизировать процесс замены и модификации файлов в проектах.
Установка
Перед использованием генератора необходимо установить его в ваше рабочее пространство Nx. Добавьте его в зависимости вашего проекта:
npm install @prizm-ui/nx-mv --save-dev
Использование
Генератор запускается с помощью команды nx
и требует указания схемы и конфигурационного файла.
Команда для запуска
nx generate @prizm-ui/nx-mv:apply --name=<project-name> --config=<config-file> [--var<VariableName>=<value>...]
Параметры
--name
(обязательно): Имя проекта, для которого будет применяться обновление.--config
(обязательно): Путь к конфигурационному файлу, описывающему, какие изменения необходимо внести.--var<VariableName>
(опционально): Дополнительные переменные, которые могут быть использованы в шаблонах EJS.
Пример конфигурационного файла
Пример конфигурационного файла nxmv.config.js
:
module.exports = {
versions: {
'my-project': {
project: 'apps/my-project',
remove: ['apps/my-project/old-file.ts'],
extFile: ['.ejs'],
consts: {
appName: 'My Project',
},
},
},
};
Обновление файлов с определенными расширениями
Генератор обновляет только файлы с расширениями, указанными в свойствах extFile
для файлов и extFolder
для папок в конфигурационном файле.
Пример конфигурационного файла с extFile
и extFolder
module.exports = {
versions: {
v18: {
extFolder: ['.ng18'],
extFile: ['.ng18'],
all: true,
rootChange: true,
remove: ['angular.json'],
consts: {
ngVersion: '18.1.3',
},
},
},
};
Пояснение свойств
extFolder
: Список расширений папок, которые будут обновлены. Например, если указано.ng18
, все папки с этим расширением будут обработаны.extFile
: Список расширений файлов, которые будут обновлены. Например, если указано.ng18
, все файлы с этим расширением будут обработаны.all
: Если установлено вtrue
, обновляет все проекты в рабочем пространстве. Еслиfalse
, обновляет только указанные проекты.rootChange
: Если установлено вtrue
, обновляет файлы в корневой директории проекта.remove
: Список файлов, которые будут удалены перед выполнением обновлений.consts
: Константы, которые будут доступны в шаблонах EJS для динамического создания файлов. В данном примере,ngVersion
будет доступен в шаблонах как переменная.
Пример запуска генератора
Пример 1: Базовый запуск
nx generate @prizm-ui/nx-mv:apply --name=my-project --config=./nxmv.config.js
Пример 2: Запуск с дополнительными переменными
nx generate @prizm-ui/nx-mv:apply --name=my-project --config=./nxmv.config.js --varAPIEndpoint=https://api.example.com --varFeatureFlag=true
Пример использования шаблонов EJS
Генератор поддерживает использование шаблонов EJS для динамического создания файлов. Пример использования:
Шаблонный файл exampleFile.ejs
export const API_ENDPOINT = "<%= APIEndpoint %>";
export const FEATURE_FLAG = <%= featureFlag %>;
Конфигурация для шаблона
module.exports = {
versions: {
'my-project': {
project: 'apps/my-project',
extFile: ['.ejs'],
consts: {
APIEndpoint: 'https://api.default.com',
featureFlag: false,
},
},
},
};
Запуск генератора с переменными
nx generate @prizm-ui/nx-mv:apply --name=my-project --config=./nxmv.config.js --varAPIEndpoint=https://api.example.com --varFeatureFlag=true
После выполнения этой команды, файл exampleFile.ejs
будет преобразован в:
export const API_ENDPOINT = 'https://api.example.com';
export const FEATURE_FLAG = true;
Пример конфигурационного файла для Angular 18
Конфигурационный файл nxmv.config.js
для проекта с Angular 18:
module.exports = {
versions: {
v18: {
extFolder: ['.ng18'],
extFile: ['.ng18'],
all: true,
rootChange: true,
remove: ['angular.json'],
consts: {
ngVersion: '18.1.3',
},
},
},
};
Пояснение свойств
extFolder
: Список расширений папок, которые будут обновлены. Например, если указано.ng18
, все папки с этим расширением будут обработаны.extFile
: Список расширений файлов, которые будут обновлены. Например, если указано.ng18
, все файлы с этим расширением будут обработаны.all
: Если установлено вtrue
, обновляет все проекты в рабочем пространстве. Еслиfalse
, обновляет только указанные проекты.rootChange
: Если установлено вtrue
, обновляет файлы в корневой директории проекта.remove
: Список файлов, которые будут удалены перед выполнением обновлений.consts
: Константы, которые будут доступны в шаблонах EJS для динамического создания файлов. В данном примере,ngVersion
будет доступен в шаблонах как переменная.
Пример запуска генератора
nx generate @prizm-ui/nx-mv:apply --name=v18 --config=./nxmv.config.js
Игнорирование файлов
Генератор использует файл nxmv.ignore
для указания файлов и директорий, которые следует игнорировать при обновлении. Формат файла аналогичен .gitignore
.
Пример файла nxmv.ignore
:
node_modules/
dist/
Заключение
Генератор @prizm-ui/nx-mv:apply
предоставляет мощный и гибкий способ автоматизировать обновление файлов проектов в рабочем пространстве Nx. Используйте конфигурационные файлы и шаблоны EJS для создания и модификации файлов на лету. Убедитесь, что вы указали необходимые расширения файлов и папок в конфигурационном файле, чтобы генератор знал, какие файлы обновлять.
Если у вас возникнут вопросы или проблемы, пожалуйста, откройте issue в репозитории проекта на GitHub.