Как установить глобальные пакеты с пряжей

yarn install -h предполагает, что -g (глобальная) DEPRECATED. Как я могу указать, что я хочу, чтобы в глобальном масштабе была yarn.lock группа пакетов (из файлов package.json/yarn.lock)?

Варианты, которые я видел:

  • yarn global [command] имеет такие вещи, как ls и add но не install. add только работы с конкретными именами пакетов, если я правильно понимаю. У меня уже есть yarn.lock файл yarn.lock, я не хочу повторять себя в командной строке.
  • yarn global add каждый пакет по одному. Теперь мой список пакетов будет необходим, а не декларативный.

В частности, я хотел бы использовать один исполняемый файл из одного из этих пакетов.

Ответ 1

Как мне указать, что я хочу, чтобы группа пакетов (из файлов package.json/yarn.lock) была установлена глобально?

Ты не должен. Компания Yarn не рекомендует устанавливать глобально, и очень мало ситуаций, когда это необходимо или даже полезно.

Как отмечено в документации:

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

Если вы пытаетесь использовать инструмент CLI, у которого есть корзина, вы можете получить к нему доступ в своем каталоге. /node_modules/.bin.

Но я очень, очень хочу!

Если вы действительно не хотите прислушиваться к советам, используйте

yarn global add <package>

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


Вместо этого предполагаемый поток с пряжей:

  • установить все локально, поэтому каждый проект изолирован
  • вызовите двоичные файлы из ./node_modules/.bin где это возможно
  • избегайте глобальных установок - это удобство, но не то, на которое вы должны положиться.

Ответ 2

Просто наберите

yarn global add nodejs

Ответ 3

Для тех, кто заинтересован, вот способ установки и управления глобальными приложениями, установленными через пряжу.

Сначала создайте каталог, который будет содержать приложения, например ~/.yarn-global:

mkdir ~/.yarn-global
cd ~/.yarn-global

Затем установите приложение здесь:

yarn add yourapp

Наконец, откройте файл своего профиля, т.е. .bashrc или .bash_profile и добавьте путь в каталог bin:

export PATH="$PATH:$HOME/.yarn-global/node_modules/.bin"

Отныне любое приложение, которое вы устанавливаете в этом каталоге, будет доступно из любой точки вашей оболочки.

Как только это будет сделано, вы можете даже создать yarn-global утилита скрипт, который будет работать только в этом .yarn глобального каталога. Например:

sudo vim /usr/bin/yarn-global
sudo chmod 755 /usr/bin/yarn-global

И содержание сценария будет:

#!/bin/bash
cd "$HOME/.yarn-global"
yarn $1 "$2"

Теперь вы можете сделать yarn-global add someapp, yarn-global upgrade someapp и т.д.

Ответ 4

npm install -g markdown-toc

Пряжа решила не поддерживать эту функциональность.