# API генератора ## cliVersion Тип: `string` Строка **глобальной** версии `@vue/cli`, вызывающей подключаемый плагин. ## assertCliVersion - **Аргументы** - `{integer | string} range` — semver диапазон, которому должна соответствовать `@vue/cli` - **Использование** Хотя `api.version` и может быть полезным, иногда приятнее просто объявить требуемую версию. Данный API предоставляет простой способ сделать это. Ничего не произойдёт, если предоставленная версия устраивает. В противном случае, будет выдана ошибка. ## cliServiceVersion Тип: `string` Строка **локальной для проекта** версии `@vue/cli-service`, вызывающей подключаемый плагин. ## assertCliServiceVersion - **Аргументы** - `{integer | string} range` — semver диапазон, которому должна соответствовать `@vue/cli-service` - **Использование** Данный API предоставляет простой способ указания требуемой локальной версии `@vue/cli-service`. Ничего не произойдёт, если предоставленная версия устраивает. В противном случае, будет выдана ошибка. Примечание: Рекомендуется использовать [поле `peerDependencies` в файле `package.json`](https://docs.npmjs.com/files/package.json#peerdependencies) в большинстве случаев. ## resolve - **Аргументы** - `{string} ..._paths` — Последовательность относительных путей или сегментов пути - **Возвращает** - `{string}` — разрешённый (resolved) абсолютный путь, вычисленный на основе текущего корня проекта - **Использование**: Разрешение пути для текущего проекта ## hasPlugin - **Аргументы** - `{string} id` — идентификатор плагина, можно опустить префикс (@vue/|vue-|@scope/vue)-cli-plugin- - `{string} version` — semver диапазон, опционально - **Возвращает** - `{boolean}` - **Использование**: Проверяет есть ли в проекте плагин с указанным идентификатором. Если указан диапазон версий, то версия плагина должна соответствовать ему. ## addConfigTransform - **Аргументы** - `{string} key` — ключ конфигурации в package.json - `{object} options` — настройки - `{object} options.file` — дескриптор файла. Используется для поиска существующего файла. Каждый ключ определяет тип файла (возможные значения: `['js', 'json', 'yaml', 'lines']`). Значение представляет собой список имён файлов. Например: ```js { js: ['.eslintrc.js'], json: ['.eslintrc.json', '.eslintrc'] } ``` По умолчанию первое имя файла будет использоваться для создания файла конфигурации. - **Возвращает** - `{boolean}` - **Использование**: Настройка способа извлечения конфигурации. ## extendPackage - **Аргументы** - `{object | () => object} fields` — поля для объединения - **Использование**: Расширение `package.json` проекта. Вложенные поля объединяются, если не передавалось `{ merge: false }`. Также используется для разрешения конфликтов зависимостей между плагинами. Поля конфигурации инструмента могут быть извлечены в отдельные файлы до того, как файлы будут записаны на диск. ## render - **Аргументы** - `{string | object | FileMiddleware} source` — может быть одним из - относительный путь к каталогу; - хэш объект соответствий `{ sourceTemplate: targetFile }`; - пользовательский файл с middleware функцией - `{object} [additionalData]` — дополнительные данные, доступные для шаблонов - `{object} [ejsOptions]` — настройки для ejs - **Использование**: Рендер файлов шаблонов в дерево виртуальных файлов. ## postProcessFiles - **Аргументы** - `{FileMiddleware} cb` — файл middleware - **Использование**: Добавление файла middleware, который будет выполняться после того, как все обычные middleware были выполнены. ## onCreateComplete - **Аргументы** - `{function} cb` - **Использование**: Добавление коллбэка, который будет вызываться после записи файлов на диск. ## exitLog - **Аргументы** - `{} msg` — строка или значение для отображения после завершения генерации; - `{('log'|'info'|'done'|'warn'|'error')} [type='log']` — тип сообщения. - **Использование**: Добавление сообщения для отображения по завершении генерации (после любых других стандартных сообщений). ## genJSConfig - **Аргументы** - `{any} value` - **Использование**: Удобный способ создания JS файла конфигурации из JSON ## makeJSOnlyValue - **Аргументы** - `{any} str` — JS выражение в виде строки - **Использование**: Преобразует строковое выражение в исполняемый JS для конфигурационных .js файлов ## injectImports - **Аргументы** - `{string} file` — целевой файл для добавления импорта - `{string | [string]} imports` — строка/массив импортов - **Использование**: Добавление импортов в файл. ## injectRootOptions - **Аргументы** - `{string} file` — целевой файл для добавления опций - `{string | [string]} options` — строка/массив опций - **Использование**: Добавление опций в корневой экземпляр Vue (определяемый по `new Vue`). ## entryFile - **Возвращает** - `{('src/main.ts'|'src/main.js')}` - **Использование**: Получение входного файла, с учётом использования typescript. ## invoking - **Возвращает** - `{boolean}` - **Использование**: Проверка, вызван ли плагин.