Как установить глобальные пакеты с пряжей
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
Пряжа решила не поддерживать эту функциональность.