@prizm-ui/nx-mv v5.9.0
@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.
11 months ago
12 months ago
11 months ago
11 months ago
11 months ago
7 months ago
8 months ago
10 months ago
11 months ago
12 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
9 months ago
9 months ago
11 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago