В npm есть команда ci для установки проекта с чистым состоянием. В документации заявлено, что:

It can be significantly faster than a regular npm install by skipping certain user-oriented features. It is also more strict than a regular install, which can help catch errors or inconsistencies caused by the incrementally-installed local environments of most npm users.

Какой ближайший эквивалент команды npm ci в мире пряжи? Может быть, ответ в том, что нам это не нужно в yarn, потому что его архитектура такова, что нам не нужен специальный режим. Возможно, ответ - использовать кучу настроек конфигурации. Однако мне не удается найти единого полного ответа на этот вопрос, и я считаю, что было бы полезно получить его.

shabunc

Ответов: 4

Ответы (4)

Думаю, это так просто:

yarn install --frozen-lockfile

основываясь на рекомендации @ Crafty_Shadow, я сделал его немного более интегрированным.

package.json

 ...
  "scripts": {
    ...
    "Preci": "rm -fr node_modules",
    "ci": "установка пряжи --frozen-lockfile"
  },
  ...

К сожалению, из-за того, как работает разрешение модуля пряжи, просто выполнить yarn install --frozen-lockfile иногда недостаточно. Вы все еще можете остаться с недействительными переходными зависимостями.

Чтобы добиться того же поведения, что и npm ci, вы должны сделать:

rm -rf node_modules && yarn install --frozen-lockfile

Для более новых версий пряжи следует использовать:

yarn install --immutable --immutable-cache --check-cache

Как указано в официальных документах Yarn: 😉

Если установлена ​​опция - check-cache [...] Это рекомендуется как часть вашего рабочего процесса CI, если вы оба следуете модели Zero-Installs и принятие PR от третьих лиц, поскольку в противном случае у них была бы возможность изменить зарегистрированные пакеты перед их отправкой.

2022 WebDevInsider