Spec-Zone.ru › Yarn 3

Файлы yarnrc (.yarnrc.yml)

Файлы yarnrc (называемые так, потому что они должны называться .yarnrc.yml) — единственное место, где можно настроить внутренние настройки Yarn. Хотя Yarn автоматически найдет их в родительских директориях, их обычно следует хранить в корне вашего проекта (часто в вашем репозитории). Начиная с версии v2, они должны быть написаны на валидном языке YAML и иметь правильное расширение (просто назвав свой файл .yarnrc не получится).

Переменные окружения можно получить из определений настроек, используя синтаксис ${NAME} при определении значений. По умолчанию Yarn будет требовать наличия переменных, но это можно отключить, используя либо ${NAME-fallback} (который вернёт fallback если NAME не установлено), либо ${NAME:-fallback} (который вернёт fallback если NAME не установлено или является пустой строкой).

Наконец, обратите внимание, что большинство настроек также можно определить через переменные окружения (по крайней мере, для более простых; массивы и объекты пока не поддерживаются). Для этого просто добавьте префикс к именам и запишите их в нижнем регистре с использованием змейки: YARN_CACHE_FOLDER установит папку кэша (такие значения переопределят любые, которые могли быть определены в файлах RC — используйте их с осторожностью).

cacheFolder

Путь к папке, где хранятся загруженные пакеты в вашей системе. Они будут нормализованы, сжаты и сохранены в виде zip-архивов со стандартными именами. Кэш считается относительно безопасным для совместного использования несколькими проектами, даже если несколько экземпляров Yarn работают одновременно в разных проектах. Для установки глобальной папки кэша следует использовать enableGlobalCache вместо этого.

cacheFolder: "./.yarn/cache"

caFilePath

Путь к файлу, содержащему один или несколько сертификатов подписания Уполномоченного центра сертификации.

caFilePath: "./exampleCA.pem"

changesetBaseRefs

Базовые git-ссылки, по которым сравнивается текущий HEAD в плагине версии. Это переопределяет стандартное поведение сравнения со master, origin/master, upstream/master, main, origin/main и upstream/main. Поддерживает git-ветви, теги и коммиты.

changesetBaseRefs:
-
"master"
-
"origin/master"
-
"upstream/master"
-
"main"
-
"origin/main"
-
"upstream/main"

changesetIgnorePatterns

Массив шаблонов glob. Файлы, соответствующие следующим шаблонам (относительно корня проекта), будут проигнорированы командой yarn version check.

changesetIgnorePatterns:
-
"**/*.test.{js,ts}"

checksumBehavior

Если throw (по умолчанию), Yarn выбросит исключение при yarn install, если обнаружит, что пакет не соответствует контрольной сумме, хранящейся в файле блокировки. Если update, контрольная сумма файла блокировки будет обновлена для соответствия новому значению. Если ignore, проверка контрольной суммы не будет выполняться.

checksumBehavior: "throw"

compressionLevel

Уровень сжатия, используемый для zip-архивов, где 0 — «без сжатия, быстрее», а 9 — «сильное сжатие, медленнее». По умолчанию используется «смешанный» вариант 9, где файлы могут храниться без сжатия, если встроенная функция libzip посчитает, что это приведёт к более разумному результату.

compressionLevel: "mixed"

constraintsPath

Путь к файлу ограничений.

constraintsPath: "./constraints.pro"

defaultLanguageName

Режим языка по умолчанию, который следует использовать, когда пакет не предоставляет информации.

defaultLanguageName: "node"

defaultProtocol

Yarn — это модульный менеджер пакетов, который может разрешать пакеты из различных источников. Поэтому диапазоны semver и имена тегов работают не только с реестром npm — просто измените протокол по умолчанию на что-то другое, и ваши диапазоны semver будут извлекаться из выбранного вами источника.

defaultProtocol: "npm:"

defaultSemverRangePrefix

Префикс по умолчанию для диапазонов зависимостей semantic version, который используется для новых зависимостей, устанавливаемых в манифест. Возможные значения — "^" (по умолчанию), "~" или "".

defaultSemverRangePrefix: "^"

deferredVersionFolder

Папка, в которой хранятся файлы версиирования.

deferredVersionFolder: "./.yarn/versions"

enableColors

Если true (по умолчанию проверяет возможности терминала), Yarn отформатирует свой вывод с использованием цветов для различения важных частей сообщений.

enableColors: true

enableGlobalCache

Если true, Yarn проигнорирует настройки cacheFolder и сохранит файлы кэша в папке, общей для всех локальных проектов, использующих ту же конфигурацию.

enableGlobalCache: false

enableHyperlinks

Если true (по умолчанию проверяет возможности терминала), CLI разрешено использовать гиперссылки в выводе.

enableHyperlinks: true

enableImmutableCache

Если true, Yarn откажется от изменения кэша любым способом (добавления или удаления файлов) при выполнении yarn install.

enableImmutableCache: false

enableImmutableInstalls

Если true (по умолчанию в CI), Yarn откажется от изменения артефактов установки (кроме кэша) при выполнении команды install. Этот флаг достаточно навязчивый, обычно вы должны установить его только в CI, вручную передавая флаг --immutable команде yarn install.

enableImmutableInstalls: false

enableInlineBuilds

Если true (по умолчанию в CI-средах), Yarn будет выводить вывод сборки непосредственно в терминал, а не буферизовать его в файле журнала.

enableInlineBuilds: false

enableMirror

Если true (по умолчанию), Yarn будет использовать глобальную папку как промежуточное звено между сетью и фактическим кэшем. Это значительно ускоряет установку для проектов, которые ещё не используют Zero-Installs.

enableMirror: true

enableNetwork

Если false, Yarn никогда не будет самостоятельно обращаться к сети и вместо этого выбросит исключение, а не позволит этому произойти. Это очень полезная настройка для CI, которая обычно хочет убедиться, что она случайно не загружает зависимости из сети.

enableNetwork: true

enableProgressBars

Если true (по умолчанию вне CI-среды), Yarn будет отображать индикаторы прогресса для длительных операций.

enableProgressBars: true

enableScripts

Если false, Yarn не будет выполнять скрипты postInstall при установке проекта. Обратите внимание, что теперь вы также можете отключать скрипты для отдельных пакетов благодаря dependenciesMeta.

enableScripts: true

enableStrictSsl

Если false, ошибки сертификатов SSL будут игнорироваться

enableStrictSsl: true
END_OF_DOCUMENT_MARKER

enableTelemetry

Если значение true (по умолчанию вне сред CI), Yarn будет периодически отправлять анонимные данные на наши серверы, отслеживая информацию об использовании, например, количество зависимостей в вашем проекте, сколько раз вы запускали установку и т. д. Подробную информацию об этом см. на странице Телеметрия.

enableTelemetry: true

enableTimers

Если значение false, Yarn не будет выводить время, затраченное на выполнение каждого подшага при выполнении различных команд. Это обычно необходимо для целей тестирования, когда вы хотите, чтобы каждое выполнение имело точно такой же вывод, как и предыдущие.

enableTimers: true

enableTransparentWorkspaces

Если значение false, Yarn не будет связывать рабочие пространства только потому, что их версии соответствуют диапазону semver. Отключение этого параметра потребует, чтобы все обращения к рабочим пространствам осуществлялись через протокол workspace:. Это обычно требуется только в некоторых очень специфических случаях.

enableTransparentWorkspaces: true

globalFolder

Путь, где хранятся все системные глобальные файлы (например, список всех пакетов, зарегистрированных через yarn link).

globalFolder: "./.yarn/global"

httpProxy

Определяет прокси-сервер, который необходимо использовать при выполнении HTTP-запроса. Обратите внимание, что Yarn в настоящее время поддерживает только HTTP-прокси (всё помощь приветствуется!).

httpProxy: "http://proxy:4040"

httpsProxy

Определяет прокси-сервер, который необходимо использовать при выполнении HTTPS-запроса. Обратите внимание, что Yarn в настоящее время поддерживает только HTTP-прокси (всё помощь приветствуется!).

httpsProxy: "http://proxy:4040"

httpTimeout

Таймаут каждого http-запроса в миллисекундах

httpTimeout: 60000

httpRetry

Количество попыток повторного выполнения http-запроса при ошибке

httpRetry: 3

ignoreCwd

Если значение true, флаг --cwd будет проигнорирован.

ignoreCwd: false

ignorePath

Если значение true, локальный исполняемый файл будет проигнорирован при использовании глобального.

ignorePath: false

immutablePatterns

Массив шаблонов для файлов и каталогов, которые не должны изменяться при выполнении установок с флагом `--immutable`.

immutablePatterns:
-
"**/.pnp.*"

initScope

Область, используемая при создании пакетов с помощью команды init.

initScope: "yarnpkg"

initFields

Дополнительные поля для установки при создании пакетов с помощью команды init.

initFields:

homepage

Все свойства будут добавлены дословно в сгенерированный package.json.

homepage: "https://yarnpkg.com"

installStatePath

Путь к файлу, где будет сохранено состояние установки.

installStatePath: "./.yarn/install-state.gz"

logFilters

Определяет переопределения уровней журналов для имён сообщений или текста сообщений. С помощью этого параметра можно скрывать определённые сообщения или придавать им большую важность.

logFilters:
-

code

Выбирает все сообщения с заданным кодом.

code: "YN0005"

level

Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.

level: "error"
-

text

Выбирает ровно одно сообщение, которое должно соответствовать заданному тексту. В случае, если сообщение соответствует фильтрам, основанным как на code, так и на text, фильтры, основанные на text, будут иметь приоритет над фильтрами, основанными на code.

text: "lorem-ipsum@npm:1.2.3 lists build scripts, but its build has been explicitly disabled through configuration"

level

Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.

level: "error"
-

pattern

Выбирает ровно одно сообщение, которое должно соответствовать заданному шаблону glob. В случае, если сообщение соответствует фильтрам, основанным как на pattern, так и на code, фильтры, основанные на pattern, будут иметь приоритет над другими. Шаблоны могут быть переопределены в каждом случае с помощью фильтра text, который имеет приоритет над pattern.

pattern: "lorem-ipsum@* lists build scripts, but its build has been explicitly disabled through configuration"

level

Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.

level: "error"

lockfileFilename

Определяет имя файлов блокировки, которые будут сгенерированы Yarn.

lockfileFilename: "yarn.lock"

networkConcurrency

Определяет, сколько запросов разрешено выполнять одновременно. Yarn по умолчанию использует 50 одновременных запросов, но может потребоваться ограничить их ещё больше, работая через прокси-серверы, которые не могут обрабатывать большое количество одновременных запросов.

networkConcurrency: 8

Настройки сети

Дополнительные настройки сети по имени хоста

Настройки сети:

*.example.com

Имя хоста для переопределения настроек (поддерживаются шаблоны с подстановкой)

*.example.com:

caFilePath

См. caFilePath.

caFilePath: "./exampleCA.pem"

enableNetwork

См. enableNetwork.

enableNetwork: true

httpProxy

См. httpProxy.

httpProxy: "http://proxy:4040"

httpsProxy

См. httpsProxy.

httpsProxy: "http://proxy:4040"

Пределы поднятия nm

Определяет самую высокую точку, на которой пакеты могут быть подняты. Одно из значений workspaces (не поднимать пакеты выше рабочей области, зависящей от них), dependencies (пакеты не поднимаются выше непосредственных зависимостей каждой рабочей области) или none (по умолчанию, пакеты поднимаются как можно выше). Этот параметр может быть переопределен для каждой рабочей области через поле installConfig.hoistingLimits.

Пределы поднятия nm: "none"

nmСамоссылок

Определяет, разрешено ли рабочим областям требовать себя — это приводит к созданию самоссылочных символьных ссылок. Этот параметр можно переопределить для каждой рабочей области через поле installConfig.selfReferences.

nmСамоссылок: true

Режим nm

Если установлено значение hardlinks-local, Yarn будет использовать жёсткие ссылки для уменьшения потребления дискового пространства внутри каталогов node_modules в текущем проекте. Если установлено значение hardlinks-global, Yarn будет использовать глобальное хранилище с адресацией по содержимому для уменьшения размера node_modules во всех проектах, использующих этот параметр.

Режим nm: "classic"

nodeLinker

Определяет, какой компоновщик должен использоваться для установки пакетов Node (полезно для включения плагина node-modules), одно из значений: pnp, pnpm и node-modules.

nodeLinker: "pnp"

npmAlwaysAuth

Если true, Yarn всегда будет отправлять учетные данные авторизации при обращении к реестрам. Обычно это не требуется.

npmAlwaysAuth: false

npmAuditRegistry

Определяет реестр, который должен использоваться при аудите зависимостей. Не нужно определять, в этом случае будет использовано значение npmRegistryServer.

npmAuditRegistry: "https://npm.pkg.github.com"

npmAuthIdent

Определяет учетные данные авторизации, которые должны использоваться по умолчанию при доступе к вашим реестрам (эквивалентно _auth в версии 1). Настоятельно не рекомендуется использовать этот параметр в пользу npmAuthToken.

npmAuthIdent: "username:password"

npmAuthToken

Определяет учетные данные авторизации, которые должны использоваться по умолчанию при доступе к вашим реестрам (эквивалентно _authToken в версии 1). Если вы используете npmScopes для определения нескольких реестров, словарь npmRegistries позволяет переопределить эти учетные данные на основе каждого реестра.

npmAuthToken: "ffffffff-ffff-ffff-ffff-ffffffffffff"

npmPublishAccess

Определяет доступ по умолчанию при публикации пакетов в реестр npm. Допустимые значения — public и restricted, но restricted обычно требует регистрации на платном плане (зависит от используемого реестра).

npmPublishAccess: "public"

npmPublishRegistry

Определяет реестр, который должен использоваться при отправке пакетов. Не нужно определять, в этом случае будет использовано значение npmRegistryServer. Переопределяется publishConfig.registry.

npmPublishRegistry: "https://npm.pkg.github.com"

npmРеестры

Помимо глобальной конфигурации, реестры можно настраивать на уровне каждого области (например, чтобы указать Yarn использовать ваш частный реестр при обращении к пакетам из данной области). Поддерживаются следующие свойства:

npmРеестры:

//npm.pkg.github.com

Этот ключ представляет реестр, для которого заданы параметры во вложенном объекте. Протокол необязателен (использование https://npm.pkg.github.com тоже работает).

//npm.pkg.github.com:

npmAlwaysAuth

См. npmAlwaysAuth.

npmAlwaysAuth: false

npmAuthIdent

См. npmAuthIdent.

npmAuthIdent: "username:password"

npmAuthToken

См. npmAuthToken.

npmAuthToken: "ffffffff-ffff-ffff-ffff-ffffffffffff"

npmСервер реестра

Определяет имя хоста удаленного сервера, с которого Yarn должен получать метаданные и архивы при запросе в реестр npm. Если необходимо определить разные реестры для разных областей, см. npmScopes. Чтобы определить схему аутентификации для ваших серверов, см. npmAuthToken. Имя хоста должно использовать протокол HTTPS, но это можно изменить, добавив его в unsafeHttpWhitelist.

npmСервер реестра: "https://registry.yarnpkg.com"

npmScopes

В дополнение к глобальной конфигурации, реестры могут быть настроены для каждого scope (например, чтобы указать Yarn использовать ваш частный реестр при доступе к пакетам из данного scope). Поддерживаются следующие свойства:

npmScopes:

my-company

Этот ключ представляет scope, который охватывается настройками, определенными во вложенном объекте. Обратите внимание, что он не должен начинаться с символа @.

my-company:

npmPublishRegistry

См. npmPublishRegistry.

npmPublishRegistry: "https://registry.yarnpkg.com"

npmRegistryServer

См. npmRegistryServer.

npmRegistryServer: "https://registry.yarnpkg.com"

npmAlwaysAuth

См. npmAlwaysAuth.

npmAlwaysAuth: false

npmAuthIdent

См. npmAuthIdent.

npmAuthIdent: "username:password"

npmAuthToken

См. npmAuthToken.

npmAuthToken: "ffffffff-ffff-ffff-ffff-ffffffffffff"

packageExtensions

Некоторые пакеты могли быть указаны некорректно в отношении их зависимостей — например, с отсутствием одной зависимости, что приводит к отказу Yarn в доступе. Поля packageExtensions предлагают способ расширить существующие определения пакетов дополнительной информацией. Если вы используете его, подумайте об отправке PR upstream и внесении своего расширения в базу данных plugin-compat. Примечание: это поле предназначено для добавления зависимостей; если вам нужно переписать существующие, лучше используйте поле resolutions.

packageExtensions:

webpack@*

Каждый ключ — это дескриптор, охватывающий диапазон semver. Расширения будут применены к любому пакету, версия которого соответствует указанному диапазону. Это справедливо независимо от того, откуда поступает пакет, поэтому, например, нет различия в том, поступают ли они из git или из реестра. Важна только версия.

webpack@*:
dependencies:
lodash: "^4.15.0"
peerDependencies:
webpack-cli: "*"
peerDependenciesMeta:
webpack-cli:
optional: true

pnpDataPath

Расположение, где Yarn будет читать и записывать файл .pnp.meta.json.

pnpDataPath: "./.pnp.data.json"

pnpEnableEsmLoader

Если true, Yarn сгенерирует экспериментальный загрузчик ESM (.pnp.loader.mjs). Yarn пытается автоматически определить, требуется ли поддержка ESM.

pnpEnableEsmLoader: false

pnpEnableInlining

Если true (по умолчанию), Yarn сгенерирует один файл .pnp.cjs, содержащий все необходимые данные для правильной работы вашего проекта. Если отключено, Yarn также сгенерирует файл .pnp.data.json, предназначенный для использования пакетом @yarnpkg/pnp.

pnpEnableInlining: true

pnpFallbackMode

Перечисление, значения которого (none, dependencies-only, all) определяют, в каком качестве хук PnP должен разрешать пакетам полагаться на встроенный механизм резервного копирования. В режиме dependencies-only (по умолчанию) ваши рабочие пространства не могут его использовать.

pnpFallbackMode: "dependencies-only"

pnpIgnorePatterns

Массив шаблонов glob. Файлы, соответствующие следующим местоположениям (с точки зрения относительного пути по сравнению с сгенерированным файлом .pnp.cjs ), не будут охватываться PnP и будут использовать обычное разрешение Node. Обычно это необходимо только в том случае, если у вас есть подпроекты, которые еще не являются частью дерева вашего рабочего пространства.

pnpIgnorePatterns:
-
"./subdir/*"

pnpMode

Если strict (по умолчанию), Yarn не позволит модулям требовать пакеты, которые они явно не перечисляют в своих собственных зависимостях. Если loose, Yarn позволит доступ к пакетам, которые были бы подняты на верхний уровень в установках 1.x. Обратите внимание, что даже в свободном режиме такие вызовы небезопасны (правила подъема непредсказуемы) и следует избегать.

pnpMode: "strict"

pnpShebang

Заголовок, который будет добавлен в начало сгенерированного файла .pnp.cjs. Вам разрешено писать несколько строк, но это немного не приветствуется.

pnpShebang: "#!/usr/bin/env node"

pnpUnpluggedFolder

Путь, где отсоединенные пакеты будут храниться на диске.

pnpUnpluggedFolder: "./.yarn/unplugged"

preferAggregateCacheInfo

Если true, Yarn будет печатать только отчет в одну строку о любых изменениях кэша.

preferAggregateCacheInfo: false

preferDeferredVersions

Если true, Yarn будет использовать отложенную версионизацию (--deferred) по умолчанию при запуске семейства команд yarn version. Это может быть отменено на основе отдельной команды путем ручного задания флага --immediate.

preferDeferredVersions: false

preferInteractive

Если true, Yarn будет запрашивать ваши указания, когда некоторые действия можно было бы улучшить, устранив неоднозначность. Включение этой настройки также открывает некоторые функции (например, команда yarn add будет предлагать повторное использование тех же зависимостей, что и другие рабочие пространства, если это уместно).

preferInteractive: false

preferTruncatedLines

Если true, Yarn будет усекать строки, которые выходят за пределы размера терминала. Если индикаторы выполнения отключены, строки никогда не будут усекаться. Забываемые строки (например, журналы этапа извлечения) всегда усекаются.

preferTruncatedLines: false

progressBarStyle

Какой стиль индикатора выполнения следует использовать (только когда индикаторы выполнения включены). Допустимые значения можно найти здесь.

progressBarStyle: "default"

rcFilename

Эта настройка определяет имя файлов, которые Yarn ищет при разрешении файлов rc. По понятным причинам эту настройку нельзя задавать в файлах rc, и она должна быть определена в среде с помощью переменной YARN_RC_FILENAME.

rcFilename: ".yarnrc.yml"

Поддерживаемые архитектуры

Определяет системы, для которых Yarn должен устанавливать пакеты.

Поддерживаемые архитектуры:

os

Список операционных систем для поддержки.

os:
-
"current"
-
"darwin"
-
"linux"
-
"win32"

cpu

Список процессоров для поддержки.

cpu:
-
"current"
-
"x86"
-
"ia32"

telemetryInterval

Эта настройка определяет минимальное время между двумя загрузками телеметрии в днях. По умолчанию мы отправляем только один запрос в неделю, что делает невозможным отслеживание вашего использования с меньшей точностью.

telemetryInterval: 7

telemetryUserId

По умолчанию мы не присваиваем уникальные идентификаторы в отправляемой телеметрии, поэтому мы не можем узнать, какая данные поступают от какого проекта. Эту настройку можно использовать для принудительного отправления идентификатора пользователя в наш сервер телеметрии. Честно говоря, она полезна только в некоторых очень специфичных случаях. Например, мы используем её в репозитории Yarn, чтобы исключить собственное использование из публичных панелей мониторинга (поскольку мы неизбежно запускаем Yarn чаще, чем где-либо ещё, полученные данные будут смещены).

telemetryUserId: "yarnpkg/berry"

unsafeHttpWhitelist

В этой настройке перечислены имена хостов, для которых разрешено использование протокола HTTP. Любой другой хост будет обязан использовать HTTPS вместо этого. Причины этого решения и более подробные сведения можно найти здесь.

Поддерживаются шаблоны glob.

unsafeHttpWhitelist:
-
"*.example.org"
-
"example.org"

virtualFolder

Из-за особенности установки Yarn пакетов, содержащих зависимости peer, некоторые пакеты будут отображаться в нескольких виртуальных каталогах, которые фактически не существуют в файловой системе. Эта настройка указывает Yarn, где разместить их. Обратите внимание, что имя папки должно быть __virtual__.

virtualFolder: "./.yarn/__virtual__"

yarnPath

Путь к бинарному файлу Yarn, который будет выполняться вместо любого другого (включая глобальный) для любых команд, выполняемых в каталоге, охватываемом файлом rc. Если расширение файла заканчивается на .js, оно будет обязательным, в противном случае будет запущен в любом случае.

Настройка yarnPath в настоящее время является предпочтительным способом установки Yarn в проекте, так как она гарантирует, что вся ваша команда будет использовать точно ту же версию Yarn, не обновляя её индивидуально.

yarnPath: "./scripts/yarn-2.0.0-rc001.js"

© 2016–present Yarn Contributors
Licensed under the BSD License.
https://v3.yarnpkg.com/configuration/yarnrc

END_OF_DOCUMENT_MARKER

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API