Перейти до основного змісту
Версія: 10.x

pnpm install

Псевдоніми: i

pnpm install використовується для встановлення всіх залежностей проєкту.

У середовищі CI встановлення не вдається, якщо файл блокування присутній, але потребує оновлення.

У робочому просторі, pnpm install встановлює всі залежності в усіх проєктах. Якщо ви бажаєте вимкнути цю поведінку, змініть значення recursive-install на false.

TL;DR

КомандаЗначення
pnpm i --offlineВстановити оффлайн, тільки зі сховища
pnpm i --frozen-lockfilepnpm-lock.yaml не буде змінено
pnpm i --lockfile-onlyОновити тільки pnpm-lock.yaml

Параметри фільтрації залежностей

За відсутності файлу блокування pnpm має створити його, і він має бути узгодженим незалежно від фільтрації залежностей, тому запуск pnpm install --prod у теці без файлу блокування все одно призведе до розвʼязання залежностей dev, а якщо розвʼязання буде невдалим, то виникне помилка. Єдиним винятком з цього правила є залежності link:.

Без --frozen-lockfile pnpm перевірятиме застарілу інформацію з залежностей file:, тому запуск pnpm install --prod без --frozen-lockfile у середовищі, де ціль file: було видалено, призведе до помилки.

--prod, -P

  • Стандартно: false
  • Тип: Boolean

Якщо true, pnpm не встановлюватиме жодного пакунка, з devDependencies, і видалятиме ті, які вже встановлені. Якщо false, pnpm встановить усі пакунки, з devDependencies та dependencies.

--dev, -D

Встановлюються лише devDependencies і видаляються dependencies, якщо вони вже були встановлені.

--no-optional

optionalDependencies не буде встановлено.

Параметри

--force

Примусове перевстановлення залежностей: перезавантаження пакунків, змінених у сховищі, перестворення файлу блокування та/або теки модулів, створених несумісною версією pnpm. Встановить усі optionalDependencies, навіть якщо вони не задовольняють поточному оточенню (cpu, os, arch).

--offline

  • Стандартно: false
  • Тип: Boolean

Якщо true, pnpm буде використовувати тільки пакунки, які вже доступні в сховищі. Якщо пакунок не буде знайдено локально, встановлення завершиться невдачею.

--prefer-offline

  • Стандартно: false
  • Тип: Boolean

Якщо true, то перевірку свіжості кешованих даних буде пропущено, але дані, яких бракує буде запитано з сервера. Щоб примусово увімкнути офлайн режим, використовуйте --offline.

--no-lockfile

Не читати та не генерувати файл pnpm-lock.yaml.

--lockfile-only

  • Стандартно: false
  • Тип: Boolean

При використанні, оновлює тільки pnpm-lock.yaml і package.json. До теки node_modules нічого не буде записано.

--fix-lockfile

Автоматично виправити пошкоджені записи файлу блокування.

--frozen-lockfile

  • Стандартно:
    • Для не-CI: false
    • Для CI: true, якщо присутній файл блокування
  • Тип: Boolean

Якщо true, pnpm не генерує файл блокування та не виконує інсталяцію, якщо файл блокування не синхронізований з маніфестом / потрібне оновлення або файл блокування відсутній.

Цей параметр стандартно дорівнює true в CI середовищах. Для виявлення середовищ CI використовується наступний код:

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61
exports.isCI = !!(
env.CI || // Travis CI, CircleCI, Cirrus CI, GitLab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
exports.name ||
false
)

--merge-git-branch-lockfiles

Обʼєднання всіх файлів блокування гілок git. [Читайте більше про файли блокування гілок git.](.. /git_branch_lockfiles)

--reporter=<name>

  • Стандартно:
    • Для TTY stdout: default
    • Для non-TTY stdout: append-only
  • Тип: default, append-only, ndjson, silent

Дозволяє вибрати репортера, який записуватиме у термінал налагоджувальну інформацію про хід встановлення.

  • silent — у консоль не виводиться жодних даних, навіть фатальних помилок
  • default — стандартний репортер, коли stdout є TTY
  • append-only — результат завжди додається в кінець. Жодні маніпуляції з курсором не виконуються
  • ndjson — найдокладніший репортер. Виводить всі журнали в форматі ndjson

Якщо ви хочете змінити тип інформації, що виводиться, скористайтеся параметром loglevel.

--use-store-server

  • Стандартно: false
  • Тип: Boolean
небезпека

Застаріла функція

Запускає сервер сховища у фоновому режимі. Сервер сховища буде продовжувати працювати після завершення встановлення. Щоб зупинити сервер сховища, виконайте pnpm server stop

--shamefully-hoist

  • Стандартно: false
  • Тип: Boolean

Створює пласку структуру node_modules, подібну до структури npm або yarn. ПОПЕРЕДЖЕННЯ: це вкрай не рекомендується.

--ignore-scripts

  • Стандартно: false
  • Тип: Boolean

Не виконувати будь-які скрипти, визначені в package.json проєкту та його залежностях.

--filter <package_selector>

попередження

Filter currently does not work properly with v8 default config, you have to implicitly set dedupePeerDependents to false to have that work. Для отримання додаткової інформації та прогресу, будь ласка, зверніться до #6300

Читайте більше про фільтрування.

--resolution-only

Перезапускає вирішення: корисно для виводу проблем із прямою залежністю.