Файлы 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 вместо этого.
caFilePath
Путь к файлу, содержащему один или несколько сертификатов подписания Уполномоченного центра сертификации.
changesetBaseRefs
Базовые git-ссылки, по которым сравнивается текущий HEAD в плагине версии. Это переопределяет стандартное поведение сравнения со master, origin/master, upstream/master, main, origin/main и upstream/main. Поддерживает git-ветви, теги и коммиты.
changesetIgnorePatterns
Массив шаблонов glob. Файлы, соответствующие следующим шаблонам (относительно корня проекта), будут проигнорированы командой yarn version check.
checksumBehavior
Если throw (по умолчанию), Yarn выбросит исключение при yarn install, если обнаружит, что пакет не соответствует контрольной сумме, хранящейся в файле блокировки. Если update, контрольная сумма файла блокировки будет обновлена для соответствия новому значению. Если ignore, проверка контрольной суммы не будет выполняться.
compressionLevel
Уровень сжатия, используемый для zip-архивов, где 0 — «без сжатия, быстрее», а 9 — «сильное сжатие, медленнее». По умолчанию используется «смешанный» вариант 9, где файлы могут храниться без сжатия, если встроенная функция libzip посчитает, что это приведёт к более разумному результату.
constraintsPath
Путь к файлу ограничений.
defaultLanguageName
Режим языка по умолчанию, который следует использовать, когда пакет не предоставляет информации.
defaultProtocol
Yarn — это модульный менеджер пакетов, который может разрешать пакеты из различных источников. Поэтому диапазоны semver и имена тегов работают не только с реестром npm — просто измените протокол по умолчанию на что-то другое, и ваши диапазоны semver будут извлекаться из выбранного вами источника.
defaultSemverRangePrefix
Префикс по умолчанию для диапазонов зависимостей semantic version, который используется для новых зависимостей, устанавливаемых в манифест. Возможные значения — "^" (по умолчанию), "~" или "".
deferredVersionFolder
Папка, в которой хранятся файлы версиирования.
enableColors
Если true (по умолчанию проверяет возможности терминала), Yarn отформатирует свой вывод с использованием цветов для различения важных частей сообщений.
enableGlobalCache
Если true, Yarn проигнорирует настройки cacheFolder и сохранит файлы кэша в папке, общей для всех локальных проектов, использующих ту же конфигурацию.
enableHyperlinks
Если true (по умолчанию проверяет возможности терминала), CLI разрешено использовать гиперссылки в выводе.
enableImmutableCache
Если true, Yarn откажется от изменения кэша любым способом (добавления или удаления файлов) при выполнении yarn install.
enableImmutableInstalls
Если true (по умолчанию в CI), Yarn откажется от изменения артефактов установки (кроме кэша) при выполнении команды install. Этот флаг достаточно навязчивый, обычно вы должны установить его только в CI, вручную передавая флаг --immutable команде yarn install.
enableInlineBuilds
Если true (по умолчанию в CI-средах), Yarn будет выводить вывод сборки непосредственно в терминал, а не буферизовать его в файле журнала.
enableMirror
Если true (по умолчанию), Yarn будет использовать глобальную папку как промежуточное звено между сетью и фактическим кэшем. Это значительно ускоряет установку для проектов, которые ещё не используют Zero-Installs.
enableNetwork
Если false, Yarn никогда не будет самостоятельно обращаться к сети и вместо этого выбросит исключение, а не позволит этому произойти. Это очень полезная настройка для CI, которая обычно хочет убедиться, что она случайно не загружает зависимости из сети.
enableProgressBars
Если true (по умолчанию вне CI-среды), Yarn будет отображать индикаторы прогресса для длительных операций.
enableScripts
Если false, Yarn не будет выполнять скрипты postInstall при установке проекта. Обратите внимание, что теперь вы также можете отключать скрипты для отдельных пакетов благодаря dependenciesMeta.
enableStrictSsl
Если false, ошибки сертификатов SSL будут игнорироваться
enableTelemetry
Если значение true (по умолчанию вне сред CI), Yarn будет периодически отправлять анонимные данные на наши серверы, отслеживая информацию об использовании, например, количество зависимостей в вашем проекте, сколько раз вы запускали установку и т. д. Подробную информацию об этом см. на странице Телеметрия.
enableTimers
Если значение false, Yarn не будет выводить время, затраченное на выполнение каждого подшага при выполнении различных команд. Это обычно необходимо для целей тестирования, когда вы хотите, чтобы каждое выполнение имело точно такой же вывод, как и предыдущие.
enableTransparentWorkspaces
Если значение false, Yarn не будет связывать рабочие пространства только потому, что их версии соответствуют диапазону semver. Отключение этого параметра потребует, чтобы все обращения к рабочим пространствам осуществлялись через протокол workspace:. Это обычно требуется только в некоторых очень специфических случаях.
globalFolder
Путь, где хранятся все системные глобальные файлы (например, список всех пакетов, зарегистрированных через yarn link).
httpProxy
Определяет прокси-сервер, который необходимо использовать при выполнении HTTP-запроса. Обратите внимание, что Yarn в настоящее время поддерживает только HTTP-прокси (всё помощь приветствуется!).
httpsProxy
Определяет прокси-сервер, который необходимо использовать при выполнении HTTPS-запроса. Обратите внимание, что Yarn в настоящее время поддерживает только HTTP-прокси (всё помощь приветствуется!).
httpTimeout
Таймаут каждого http-запроса в миллисекундах
httpRetry
Количество попыток повторного выполнения http-запроса при ошибке
ignoreCwd
Если значение true, флаг --cwd будет проигнорирован.
ignorePath
Если значение true, локальный исполняемый файл будет проигнорирован при использовании глобального.
immutablePatterns
Массив шаблонов для файлов и каталогов, которые не должны изменяться при выполнении установок с флагом `--immutable`.
initScope
Область, используемая при создании пакетов с помощью команды init.
initFields
Дополнительные поля для установки при создании пакетов с помощью команды init.
homepage
Все свойства будут добавлены дословно в сгенерированный package.json.
installStatePath
Путь к файлу, где будет сохранено состояние установки.
logFilters
Определяет переопределения уровней журналов для имён сообщений или текста сообщений. С помощью этого параметра можно скрывать определённые сообщения или придавать им большую важность.
code
Выбирает все сообщения с заданным кодом.
level
Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.
text
Выбирает ровно одно сообщение, которое должно соответствовать заданному тексту. В случае, если сообщение соответствует фильтрам, основанным как на code, так и на text, фильтры, основанные на text, будут иметь приоритет над фильтрами, основанными на code.
level
Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.
pattern
Выбирает ровно одно сообщение, которое должно соответствовать заданному шаблону glob. В случае, если сообщение соответствует фильтрам, основанным как на pattern, так и на code, фильтры, основанные на pattern, будут иметь приоритет над другими. Шаблоны могут быть переопределены в каждом случае с помощью фильтра text, который имеет приоритет над pattern.
level
Применяет указанный уровень журнала ко всем выбранным сообщениям. Может быть одним из info, warning, error, или discard, если вы хотите полностью скрыть эти сообщения.
lockfileFilename
Определяет имя файлов блокировки, которые будут сгенерированы Yarn.
networkConcurrency
Определяет, сколько запросов разрешено выполнять одновременно. Yarn по умолчанию использует 50 одновременных запросов, но может потребоваться ограничить их ещё больше, работая через прокси-серверы, которые не могут обрабатывать большое количество одновременных запросов.
Настройки сети
Дополнительные настройки сети по имени хоста
*.example.com
Имя хоста для переопределения настроек (поддерживаются шаблоны с подстановкой)
caFilePath
См. caFilePath.
enableNetwork
См. enableNetwork.
httpProxy
См. httpProxy.
httpsProxy
См. httpsProxy.
Пределы поднятия nm
Определяет самую высокую точку, на которой пакеты могут быть подняты. Одно из значений workspaces (не поднимать пакеты выше рабочей области, зависящей от них), dependencies (пакеты не поднимаются выше непосредственных зависимостей каждой рабочей области) или none (по умолчанию, пакеты поднимаются как можно выше). Этот параметр может быть переопределен для каждой рабочей области через поле installConfig.hoistingLimits.
nmСамоссылок
Определяет, разрешено ли рабочим областям требовать себя — это приводит к созданию самоссылочных символьных ссылок. Этот параметр можно переопределить для каждой рабочей области через поле installConfig.selfReferences.
Режим nm
Если установлено значение hardlinks-local, Yarn будет использовать жёсткие ссылки для уменьшения потребления дискового пространства внутри каталогов node_modules в текущем проекте. Если установлено значение hardlinks-global, Yarn будет использовать глобальное хранилище с адресацией по содержимому для уменьшения размера node_modules во всех проектах, использующих этот параметр.
nodeLinker
Определяет, какой компоновщик должен использоваться для установки пакетов Node (полезно для включения плагина node-modules), одно из значений: pnp, pnpm и node-modules.
npmAlwaysAuth
Если true, Yarn всегда будет отправлять учетные данные авторизации при обращении к реестрам. Обычно это не требуется.
npmAuditRegistry
Определяет реестр, который должен использоваться при аудите зависимостей. Не нужно определять, в этом случае будет использовано значение npmRegistryServer.
npmAuthIdent
Определяет учетные данные авторизации, которые должны использоваться по умолчанию при доступе к вашим реестрам (эквивалентно _auth в версии 1). Настоятельно не рекомендуется использовать этот параметр в пользу npmAuthToken.
npmAuthToken
Определяет учетные данные авторизации, которые должны использоваться по умолчанию при доступе к вашим реестрам (эквивалентно _authToken в версии 1). Если вы используете npmScopes для определения нескольких реестров, словарь npmRegistries позволяет переопределить эти учетные данные на основе каждого реестра.
npmPublishAccess
Определяет доступ по умолчанию при публикации пакетов в реестр npm. Допустимые значения — public и restricted, но restricted обычно требует регистрации на платном плане (зависит от используемого реестра).
npmPublishRegistry
Определяет реестр, который должен использоваться при отправке пакетов. Не нужно определять, в этом случае будет использовано значение npmRegistryServer. Переопределяется publishConfig.registry.
npmРеестры
Помимо глобальной конфигурации, реестры можно настраивать на уровне каждого области (например, чтобы указать Yarn использовать ваш частный реестр при обращении к пакетам из данной области). Поддерживаются следующие свойства:
//npm.pkg.github.com
Этот ключ представляет реестр, для которого заданы параметры во вложенном объекте. Протокол необязателен (использование https://npm.pkg.github.com тоже работает).
npmAlwaysAuth
См. npmAlwaysAuth.
npmAuthIdent
См. npmAuthIdent.
npmAuthToken
См. npmAuthToken.
npmСервер реестра
Определяет имя хоста удаленного сервера, с которого Yarn должен получать метаданные и архивы при запросе в реестр npm. Если необходимо определить разные реестры для разных областей, см. npmScopes. Чтобы определить схему аутентификации для ваших серверов, см. npmAuthToken. Имя хоста должно использовать протокол HTTPS, но это можно изменить, добавив его в unsafeHttpWhitelist.
npmScopes
В дополнение к глобальной конфигурации, реестры могут быть настроены для каждого scope (например, чтобы указать Yarn использовать ваш частный реестр при доступе к пакетам из данного scope). Поддерживаются следующие свойства:
my-company
Этот ключ представляет scope, который охватывается настройками, определенными во вложенном объекте. Обратите внимание, что он не должен начинаться с символа @.
npmPublishRegistry
См. npmPublishRegistry.
npmRegistryServer
См. npmRegistryServer.
npmAlwaysAuth
См. npmAlwaysAuth.
npmAuthIdent
См. npmAuthIdent.
npmAuthToken
См. npmAuthToken.
packageExtensions
Некоторые пакеты могли быть указаны некорректно в отношении их зависимостей — например, с отсутствием одной зависимости, что приводит к отказу Yarn в доступе. Поля packageExtensions предлагают способ расширить существующие определения пакетов дополнительной информацией. Если вы используете его, подумайте об отправке PR upstream и внесении своего расширения в базу данных plugin-compat. Примечание: это поле предназначено для добавления зависимостей; если вам нужно переписать существующие, лучше используйте поле resolutions.
webpack@*
Каждый ключ — это дескриптор, охватывающий диапазон semver. Расширения будут применены к любому пакету, версия которого соответствует указанному диапазону. Это справедливо независимо от того, откуда поступает пакет, поэтому, например, нет различия в том, поступают ли они из git или из реестра. Важна только версия.
pnpDataPath
Расположение, где Yarn будет читать и записывать файл .pnp.meta.json.
pnpEnableEsmLoader
Если true, Yarn сгенерирует экспериментальный загрузчик ESM (.pnp.loader.mjs). Yarn пытается автоматически определить, требуется ли поддержка ESM.
pnpEnableInlining
Если true (по умолчанию), Yarn сгенерирует один файл .pnp.cjs, содержащий все необходимые данные для правильной работы вашего проекта. Если отключено, Yarn также сгенерирует файл .pnp.data.json, предназначенный для использования пакетом @yarnpkg/pnp.
pnpFallbackMode
Перечисление, значения которого (none, dependencies-only, all) определяют, в каком качестве хук PnP должен разрешать пакетам полагаться на встроенный механизм резервного копирования. В режиме dependencies-only (по умолчанию) ваши рабочие пространства не могут его использовать.
pnpIgnorePatterns
Массив шаблонов glob. Файлы, соответствующие следующим местоположениям (с точки зрения относительного пути по сравнению с сгенерированным файлом .pnp.cjs ), не будут охватываться PnP и будут использовать обычное разрешение Node. Обычно это необходимо только в том случае, если у вас есть подпроекты, которые еще не являются частью дерева вашего рабочего пространства.
pnpMode
Если strict (по умолчанию), Yarn не позволит модулям требовать пакеты, которые они явно не перечисляют в своих собственных зависимостях. Если loose, Yarn позволит доступ к пакетам, которые были бы подняты на верхний уровень в установках 1.x. Обратите внимание, что даже в свободном режиме такие вызовы небезопасны (правила подъема непредсказуемы) и следует избегать.
pnpShebang
Заголовок, который будет добавлен в начало сгенерированного файла .pnp.cjs. Вам разрешено писать несколько строк, но это немного не приветствуется.
pnpUnpluggedFolder
Путь, где отсоединенные пакеты будут храниться на диске.
preferAggregateCacheInfo
Если true, Yarn будет печатать только отчет в одну строку о любых изменениях кэша.
preferDeferredVersions
Если true, Yarn будет использовать отложенную версионизацию (--deferred) по умолчанию при запуске семейства команд yarn version. Это может быть отменено на основе отдельной команды путем ручного задания флага --immediate.
preferInteractive
Если true, Yarn будет запрашивать ваши указания, когда некоторые действия можно было бы улучшить, устранив неоднозначность. Включение этой настройки также открывает некоторые функции (например, команда yarn add будет предлагать повторное использование тех же зависимостей, что и другие рабочие пространства, если это уместно).
preferTruncatedLines
Если true, Yarn будет усекать строки, которые выходят за пределы размера терминала. Если индикаторы выполнения отключены, строки никогда не будут усекаться. Забываемые строки (например, журналы этапа извлечения) всегда усекаются.
progressBarStyle
Какой стиль индикатора выполнения следует использовать (только когда индикаторы выполнения включены). Допустимые значения можно найти здесь.
rcFilename
Эта настройка определяет имя файлов, которые Yarn ищет при разрешении файлов rc. По понятным причинам эту настройку нельзя задавать в файлах rc, и она должна быть определена в среде с помощью переменной YARN_RC_FILENAME.
Поддерживаемые архитектуры
Определяет системы, для которых Yarn должен устанавливать пакеты.
os
Список операционных систем для поддержки.
cpu
Список процессоров для поддержки.
telemetryInterval
Эта настройка определяет минимальное время между двумя загрузками телеметрии в днях. По умолчанию мы отправляем только один запрос в неделю, что делает невозможным отслеживание вашего использования с меньшей точностью.
telemetryUserId
По умолчанию мы не присваиваем уникальные идентификаторы в отправляемой телеметрии, поэтому мы не можем узнать, какая данные поступают от какого проекта. Эту настройку можно использовать для принудительного отправления идентификатора пользователя в наш сервер телеметрии. Честно говоря, она полезна только в некоторых очень специфичных случаях. Например, мы используем её в репозитории Yarn, чтобы исключить собственное использование из публичных панелей мониторинга (поскольку мы неизбежно запускаем Yarn чаще, чем где-либо ещё, полученные данные будут смещены).
unsafeHttpWhitelist
В этой настройке перечислены имена хостов, для которых разрешено использование протокола HTTP. Любой другой хост будет обязан использовать HTTPS вместо этого. Причины этого решения и более подробные сведения можно найти здесь.
Поддерживаются шаблоны glob.
virtualFolder
Из-за особенности установки Yarn пакетов, содержащих зависимости peer, некоторые пакеты будут отображаться в нескольких виртуальных каталогах, которые фактически не существуют в файловой системе. Эта настройка указывает Yarn, где разместить их. Обратите внимание, что имя папки должно быть __virtual__.
yarnPath
Путь к бинарному файлу Yarn, который будет выполняться вместо любого другого (включая глобальный) для любых команд, выполняемых в каталоге, охватываемом файлом rc. Если расширение файла заканчивается на .js, оно будет обязательным, в противном случае будет запущен в любом случае.
Настройка yarnPath в настоящее время является предпочтительным способом установки Yarn в проекте, так как она гарантирует, что вся ваша команда будет использовать точно ту же версию Yarn, не обновляя её индивидуально.
© 2016–present Yarn Contributors
Licensed under the BSD License.
https://v3.yarnpkg.com/configuration/yarnrc