Глобальна команда пряжі не працює


114

Я працюю з Yarn v0.16.1. Якщо я правильно розумію (згідно з документацією ), це yarn global add <package>має бути еквівалентом npm install -g <package>. Однак, коли я запускаю приклад у документах (with create-react-app), команда виконується успішно, але create-react-appтоді недоступна з командного рядка. Ось результат:

$ yarn global add create-react-app
$ yarn global v0.16.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed create-react-app@0.6.0 with binaries:
  - create-react-app
✨  Done in 3.22s.
$ create-react-app --help
-bash: create-react-app: command not found

Виконання глобальної установки за допомогою npm має очікуваний результат, і все працює. Чого мені не вистачає з пряжею?

Відповіді:


179

Ви повинні додати export PATH="$PATH:$(yarn global bin)"до свого ~/.bash_profileабо будь-що, що ви використовуєте. Це вирішило б проблему.

Залежно від того, як ви його встановили, глобальна папка Yarn чомусь змінюється. Ви можете слідкувати за цим питанням тут.


6
Ви повинні також виконати файл «.bash_profile» після того, як він був відредагований , щоб оновити зміни в Баш оболонки: source ~/.bash_profile.
tfmontague

1
У деяких системах вам може знадобитися запустити yarn global binсамостійно і використовувати буквальну URL-адресу ~/.bash_profileзамість підоболонки, приблизно так:export PATH="$PATH:/usr/local/bin"
Натан Артур

Мені довелося слідувати порадам цього коментаря у питанні, на яке вказано у відповіді. I got global bins working by altering my path from what the docs say in the alternative installation section from export PATH="$PATH:$HOME/.yarn/bin" to export PATH="$PATH:$HOME/.yarn/bin:$HOME/.yarn-config/global/node_modules/.bin" github.com/yarnpkg/yarn/issues/1321#issuecomment-255532028
cirovladimir

1
Для користувачів Ubuntu, які стикаються з цією проблемою, додайте export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"до свого ~ / .bash_profile
Пітт,

2
для zsh, просто надіньте .zshrc
Shad

48

Оновлення грудня 2018 р

Просто оновлення шляху для мене не працювало. Мені також довелося встановити префікс пряжі.

  • Ubuntu 18.04.1 LTS (біонічний)
  • пряжа 1.12.3
  • npm v3.5.2
  • вузол v8.10.0
  • zsh 5.4.2

Кроки

  1. Підтвердьте свій глобальний шлях до смітника

    yarn global bin
    

Я зрозумів, я отримав: /home/username/.yarn/bin

  1. встановити префікс пряжі:

    переконайтеся, що ваш префікс пряжі є батьківським каталогом вашого каталогу bin. Ви можете підтвердити, запустивши

    yarn config get prefix
    

    коли я запускав це, мій префікс був порожнім, тому я встановив його:

    yarn config set prefix ~/.yarn
    
  2. додати наступне до ~ / .bash_profile або ~ / .bashrc

    export PATH="$PATH:`yarn global bin`"
    

    для користувачів zsh не забудьте додати цей рядок до ~ / .zshrc

  3. перезапустіть свою оболонку або запустіть нову

    bash -l або zsh


Дякую, працює чудово! Перевірено на Ubuntu 18.04 на WSL
robe007

3

У моєму випадку yarn global binце не спрацювало.

Спробуйте, brew reinstall yarnякщо саме так ви встановилиyarn

👍🏻


2

Щоб перевстановити, запустіть нижче.

brew install -g yarn

// Примітка: (оновлення домашньої мови) для користувачів Mac.

brew reinstall yarn

// (якщо пряжі все ще не знайдено)


2

У Ubuntu я виправив, встановивши пакет наступним чином:

sudo yarn global add <package> --prefix /usr/local

2

Натрапив на цю проблему, але в системі Windows. Все, що мені потрібно було зробити, - це додати загальний бін пряжі до змінної PATH.

setx path "%path%;c:\users\YOURUSERNAME\appdata\local\yarn\bin"

Не забудьте змінити YOURUSERNAME на ім’я вашого облікового запису.

Ви можете перевірити, де знаходиться ваш глобальний бен, запустивши

yarn global bin

І не забудьте перезапустити вікно CMD, над яким ви працюєте. Щасливого кодування!


1
Вирішено мою проблему в Windows 10 після запуску "yarn global add vuepress" та створення програми read me, команду "vuepress dev" не вдалося знайти раніше.
Боз,

1

Ось процес, який я використовував на Mac OSX El Capitan.

  1. Спробуйте встановити пряжу (я використовував команду Curl), якщо вона у вас вже є. Це відобразиться, якщо його вже встановлено, і дасть вам поточний каталог, де він існує.

Подобається це:

curl -o- -L https://yarnpkg.com/install.sh | bash

Він буде відображати щось подібне:

Installing Yarn!
> /Users/{Your Username}/.yarn already exists, possibly from a past Yarn install.
> Remove it (rm -rf /Users/{Your Username}/.yarn) and run this script again.

Не знімайте його. Перейдіть до кроку 2.

  1. Скопіюйте перелічений вище каталог. Відкрийте свій профіль. Я використовую zsh. Так моя була ~/.zshrc. Ви можете знайти свою та більше інформації тут .

  2. Скопіюйте наступне (замінивши деталі вашого каталогу та імені користувача за необхідності, той, який ви отримали із повідомлення про помилку встановлення).

    alias yarn="/Users/{Your Username}/.yarn/bin/yarn"

  1. Спробуйте запустити, yarn versionщоб перевірити, чи працює. Якщо це так, ви повинні побачити номер версії, що відображається у вашому терміналі.

Ось і все, і що мені вдалося.


1

AndrewD дав чудову відповідь, але для тих, хто працює під Windows, це дещо інше, особливо крок 3.

Будь ласка, не використовуйте команду, setxяк сказав @Thapedict. Він видалить усі ваші попередні шляхи, які ви мали, і замінить його лише на вказаний каталог. Якщо ви хочете використовувати setx, я думаю, що може існувати прапорець, який змусить його додавати існуючі змінні шляху, але я не знаю який. Використання лише setx не додасться до нього.

Я б просто зробив Властивості системи> Додатково> Змінні середовища> Редагувати шлях> Новий> c: \ users \ YOURUSERNAME \ appdata \ local \ yarn \ bin

щоб переконатися, що ви не видаляєте попередні змінні.


0

При переході з bash на zsh я отримав ту ж помилку, вона спрацювала для мене:

in your .zshrc 

# NVM Stuff
export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"

# YVM Stuff
export YVM_DIR="$HOME/.yvm"
. "$(brew --prefix yvm)/yvm.sh"

Як я розумію, моя помилка виникла через відсутність доступу до менеджерів версій

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.