<p>yarn global add неправильно устанавливает двоичные файлы</p>

Созданный на 11 окт. 2016  ·  120Комментарии  ·  Источник: yarnpkg/yarn

Вы хотите запросить _функцию_ или сообщить _ об ошибке?
_bug_

Каково текущее поведение?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
create-react-app not found

Какое поведение ожидается?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
/usr/local/bin/create-react-app

Пожалуйста, укажите ваш node.js, yarn и версию операционной системы.

➜  ~  system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12 (16A323)
      Kernel Version: Darwin 16.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

➜  ~ node --version
v6.7.0
➜  ~  yarn --version
0.15.1
cat-bug cat-compatibility

Самый полезный комментарий

Запустите yarn global bin и добавьте его в свой $PATH .

Все 120 Комментарий

То же поведение здесь, в той же системе.

Просто примечание, чтобы уточнить, что это не уникально для приложения create-react-app. mean-cli например, вызывает ту же проблему.

Также получил это в системе Ubuntu 15.10

Запустите yarn global bin и добавьте его в свой $PATH .

Это исправляет. Но здесь это никак не задокументировано: https://yarnpkg.com/en/docs/cli/global
(Я имею в виду, что да, yarn global bin задокументировано, но пример не предполагает, что необходимо добавить его в ваш PATH)

На моей машине это возвращает /usr/local/Cellar/node/6.7.0/bin . Означает ли это, что все мои глобальные двоичные файлы привязаны к этой версии узла, и если я обновлюсь, мне придется их переустановить? Это кажется грязным, не так ли?

Еще я заметил, что "$(yarn global bin)" возвращает ^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin . Я что-то делаю неправильно, когда пытаюсь добавить export="${PATH}:$(yarn global bin)" к своим .zshrc ?

Это не задокументировано AFAIK. Должен быть. Не стесняйтесь отправлять PR.
Прочтите это, чтобы понять, почему глобальный путь зависит от версии.

@wokalski , вы уверены, что упомянули правильный вопрос? Я даже не понимаю, почему это связано ...

@Fahrradflucht извините! Починил это.

Хорошо, понял!

Тогда у меня остается этот вопрос:

Еще я заметил, что "$ (yarn global bin)" возвращает ^ [[2K ^ [[1G / usr / local / Cellar / node / 6.7.0 / bin. Я что-то делаю не так, когда пытаюсь добавить export = "$ {PATH}: $ (yarn global bin)" в свой .zshrc?

Я бы подал новый выпуск, если бы был уверен, что не сделал глупой ошибки 😁

@Fahrradflucht Не только у вас, у меня такая же проблема на macOS с использованием старого простого bash.

export PATH="/usr/local/Cellar/node/6.3.1/bin:$PATH"

работает

export PATH="$(yarn global bin):$PATH"

Не. Я открыл проблему; https://github.com/yarnpkg/yarn/issues/851

yarn global bin - это /usr/bin в моей системе. Хочу, чтобы это было /usr/local/bin чтобы избавить меня от головной боли после химической завивки.

Теперь, когда я думаю об этом ... почему yarn global bin возвращает ~/.yarn-cache/.global/node_modules/.bin/ ?

@kaihendry, потому что Yarn был установлен Homebrew

Те же проблемы на macOS

Yarn, похоже, не устанавливает двоичные файлы в $(yarn global bin) , что, поскольку я использую nvm в OSX, составляет /Users/username/.nvm/versions/node/v6.9.2/bin

После выполнения yarn global add nodemon его нигде не найти, и ничто в подробной установке не показывает, что он помещает какие-либо файлы в каталог bin.

ОБНОВИТЬ

yarn global remove nodemon и yarn global add nodemon исправили это и правильно поместили в $(yarn global bin) . Однако в подробном журнале по-прежнему ничего нет ...

точно такая же проблема, как заявил

Я вижу отчет, что это было исправлено в версии 0.20 RC. Кто-нибудь может подтвердить, пожалуйста?

Я только что столкнулся с этой проблемой с v0.20.0, но решил ее, удалив и повторно добавив пакет, как упоминалось в @ c0bra .

Все еще не работает у меня в v0.20.3:

$ cd $(yarn global bin)
$ ls 
tern@  yarn@  yarnpkg@
$ yarn global add ember-cli
yarn global v0.20.3
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
warning No license field
Done in 3.81s.
$ cd $(yarn global bin)
$ ls
tern@  yarn@  yarnpkg@

Все еще не работает в 0.20.3 установленном через homebrew на macOS.

Была такая же проблема сегодня (установка homebrew, пряжа v0.20.3). Выяснилось, что я забыл экспортировать папку bin в свой PATH перед установкой глобальных пакетов. Я экспортировал его, используя:
export PATH="$(yarn global bin):$PATH"
а затем удаление и повторное добавление глобальных пакетов правильно связали двоичные файлы. (Спасибо @ c0bra)

Для меня (macOS Sierra и пряжа 0.21.3 через Homebrew) теперь это работает (там, где этого не было раньше). Пришлось yarn global remove ----- && yarn global add ---- .

Я встретил ту же проблему с @erizocosmico, используя Yarn v0.21.3 (я использую nvm). Исправлено, выполнив следующие действия:

  1. Добавьте в мой файл .zshrc :
export PATH="$(yarn global bin):$PATH"
  1. yarn global remove [package-name] затем yarn global add [package-name]

Единственная проблема может заключаться в том, что пакет фактически установлен в /usr/local/Cellar/node/7.7.1/bin , потому что при установке Yarn через Homebrew он также установит исполняемый файл Node по пути Homebrew , что кажется странным и может конфликтовать с nvm. И поскольку файл .zshrc был запущен по пути HOME, глобальный пакет всегда будет устанавливаться в папку bin узла Homebrew.

  1. Исправления здесь временные. Когда произойдет новое обновление узла, ваши глобальные пакеты перестанут работать и потребуются повторные ссылки. На данный момент переключен для глобальных пакетов на npm .

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

Как я это исправил:

  1. $ yarn global remove ___

  2. Убедитесь , что NVM добыт перед добавлением пряжи на ваш PATH

# First...
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# Then...
export PATH="$(yarn global bin):$PATH"
  1. $ yarn global add ___

  2. Подтвердите глобальный путь установки пакета

$ which ___
# Should give you...
/path/to/nvm/versions/v7.6.0/bin/___

Я попробовал решения, предложенные выше, и у меня это не сработало.
Я видел, что это может быть вызвано различными способами установки пряжи и местом, где находятся двоичные файлы пряжи (в моем случае пряжа была установлена ​​с помощью apt-get , и она доступна под /usr/bin )

Ошибка, которую я получил при установке ember, была:

$ yarn global add ember-cli
yarn global v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
error We don't have permissions to touch the file "/usr/bin/ember".

Обратите внимание на последнюю строчку:
yarn попытался поместить контейнер для тлеющих углей в (корневую) папку: /usr/bin

На данный момент я нашел две альтернативы:

  • а) sudo yarn global add ember-cli
    Установка ember с помощью sudo работает, потому что тогда yarn может записывать в /usr/bin
  • б) поместите папку yarn/global/node_modules/.bin в $ PATH; например, добавив что-то вроде этого в конец вашего файла .(whatever)rc :
    export PATH=$PATH:$GOBIN:~/.config/yarn/global/node_modules/.bin/
    Таким образом, глобальные двоичные файлы yarn будут доступны по адресу $PATH

Это сработало для меня!

  1. Добавьте в мой файл .zshrc следующее:
    экспорт PATH = "$ (глобальная корзина пряжи): $ PATH"
  2. yarn global remove [имя-пакета], затем yarn global add [имя-пакета]

То же самое здесь:

yarn --version
0.21.3
yarn global add mocha
success Installed "[email protected]" with binaries: [..]
$ mocha
-bash: mocha: command not found

Получил работу, используя:
npm install --global mocha

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

$ yarn global bin
/usr/local/Cellar/node/7.4.0/bin
$ ls $(yarn global bin)
bower     ember     node      phantomjs

теперь обновить:

$ brew update && brew upgrade

а теперь это:

$ yarn global bin
/usr/local/Cellar/node/7.8.0/bin
$ ls $(yarn global bin)
node

зовущий уголек:

$ ember
-bash: ember: command not found

Бинарные файлы ушли, их нужно переместить вручную 😦

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.8.0
npm --version
4.2.0
yarn --version
0.22.0

Я пробовал поставить:
export PATH="$(yarn global bin):$PATH"
в моем файле .zshrc, как было предложено выше ... перезапустил мой терминал, ничего не происходит. Я даже перезапустил свою машину. Ничего не произошло.

Я попытался ввести приведенный ниже фрагмент кода в свой .zshrc:
export PATH="$PATH: yarn global bin "
это предлагается на https://yarnpkg.com/en/docs/install#mac -tab, но по-прежнему ничего не происходит.

Есть другие предложения? :)

Я потерял исполняемый файл ember после обновления до yarn v0.22.0:

$ brew update && brew upgrade

Однако удаление и повторное добавление решило проблему для меня:

$ yarn global remove ember-cli
$ yarn global add ember-cli

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

почему нет списка глобальных пакетов? есть ли причина, по которой у нас нет вроде .yarnrc.json или .package.json или чего-то еще, а там есть обычный файл пакета со списком зависимостей, которые будут глобальными установленными пакетами?

когда я запускаю yarn global bin , происходит ошибка: No such file or directory: 'global' , я не уверен, что пошло не так.
пряжа - версия # 0.22

yarn global remove typescript && yarn global add typescript исправленная проблема для меня.

OSX: Эль-Капитан.
Узел: 4.7.2 (через n)

В настоящее время это происходит после обновления с 0.17 до 0.22 . Предлагаемое здесь исправление работает, но мне не приходилось делать это раньше, поэтому я полагаю, что это ошибка.

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.9.0
npm --version
4.2.0
yarn --version
0.23.2

Я пробовал поместить эти фрагменты кода в свой профиль .zshrc -> 1, 2 и 3.

  1. Согласно рекомендациям выше:
    export PATH="$(yarn global bin):$PATH"
  1. Согласно https://yarnpkg.com/en/docs/install
    export PATH="$PATH: yarn global bin "

  2. Я старался, чтобы в моем .zshrc не было ничего из кодов.

Я перезапустил свой терминал, ничего не происходит.
Я даже перезапустил свою машину. Еще ничего.

У меня была такая же проблема, и это было моим решением:

Проблема

  • пряжа была установлена ​​с использованием brew
  • с использованием yarn global add ... не устанавливается по пути, возвращаемому yarn global bin который в моем случае равен /usr/local/Cellar/node/7.9.0/bin
  • фактический путь, по которому yarn global add ... установить пакеты, равен ~/.config/yarn/global/node_modules/.bin

Решение

  • Добавьте это в конфигурацию моего пути:
export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

Детали системы

Mac OS 10.12.4 (16E195)
zsh --version
zsh 5.3.1 (x86_64-apple-darwin16.3.0)
node --version
v7.9.0
yarn --version
0.23.2
brew --version
Homebrew 1.1.12
Homebrew/homebrew-core (git revision a29be4; last commit 2017-04-14)

У меня похожая проблема. Результатом yarn global bin будет /usr/local/bin . Глобальная установка gulp-cli без sudo ( yarn global add gulp-cli ) дает error We don't have permissions to touch the file "/usr/local/bin/gulp" . Глобальная установка с помощью sudo ( sudo yarn global add gulp-cli ) проходит успешно, но запуск gulp выводит bash: gulp: command not found .

Также очень своеобразно: запуск sudo gulp завершается успешно (угадывая что-то не так с завивками, заходя в /usr/local/bin и запуская ./gulp разрешение отклонено, но запуск с sudo работает), запуск yarn global ls или sudo yarn global ls выходы

yarn global v0.22.0
warning No license field
Done in 0.26s.

Я использую Arch Linux с npm 4.5.0, yarn 0.22.0 и node v7.7.3.
И да, /usr/local/bin , очевидно, находится на моем пути как для моего пользователя, так и для пользователя root.

ИЗМЕНИТЬ (корневой и пользовательский пути):

[steventheevil@Steven-PC Downloads]$ su
Password: 
[root@Steven-PC Downloads]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin
[root@Steven-PC Downloads]# exit
exit
[steventheevil@Steven-PC Downloads]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin

То же самое в ArchLinux.

В моем случае пакет yo (и другие) был установлен в /home/agilob/.config/yarn/global/node_modules/yo/lib . Я пытаюсь использовать jhipster, но yanr утверждает, что он использует /usr/bin для установки пакетов:

$ yarn global bin
/usr/bin

У него даже нет привилегий создавать там файлы.

Выполнение команды:
/home/agilob/.config/yarn/global/node_modules/yo/lib/cli.js jhipster сработало правильно.

Спасибо @bcessa , у $HOME/.config/yarn/global/node_modules/.bin работает должным образом.

Я также вижу проблему с синхронизацией пути global bin :

  • macOS 10.12.4
  • node.js LTS, установленный из nodejs.org pkg
  • пряжа установлена ​​установочным скриптом
$ which node
/usr/local/bin/node

$ node --version
v6.10.2

$ which yarn
/Users/jdub/.yarn/bin/yarn

$ yarn --version
0.23.2

$ yarn global bin
/usr/local/bin

# But yarn global add installs to ~/.config/yarn/global, so I've added it to my path, e.g.

$ which testim
/Users/jdub/.config/yarn/global/node_modules/.bin/testim

@OmgImAlexis Не уверен, что это явный дубликат - есть примеры проблемы, которые не связаны с узлом или пряжей, установленными из homebrew.

Все хорошо, по-прежнему приятно иметь ссылку между проблемами, если одна фиксация исправляет обе проблемы. 👍

Также испытываю это с пряжей 0,22 на малине 😃

глобально установленные пакеты, такие как CRA, eslint и т. д., работают, просто найдите для меня.

но yarn global ls показывает ничего, кроме выполненного

Эта проблема также присутствует, когда узел установлен nvm, я не думаю, что он специфичен для homebrew.

$(yarn global bin) уже на моем пути, но, например:

> nvm install 6.10.2
> npm install -g yarn
> which yarn
~/.nvm/versions/node/v6.10.2/bin/yarn
> yarn global bin
~/.nvm/versions/node/v6.10.2/bin
> yarn global add yo
> ls ~/.nvm/versions/node/v6.10.2/bin
node    npm     yarn    yarnpkg

В этом примере yarn global add yo не генерирует двоичный файл yo в пути bin.

Здесь я добавил несколько тестов: https://github.com/yarnpkg/yarn/pull/3238, и для меня это закрыто. Есть несколько угловых случаев, но есть и другие проблемы.

@bestander

yarn устанавливается из yarn-0.23.4.msi, платформа: Windows 10, MinGW.
Моя глобальная команда не работает после yarn global add * .
Кажется, что yarn хранит глобальные пакеты в:

%USERPROFILE%\AppData\Local\Yarn\config\global\node_modules\.bin

Глобальная команда работает после добавления ее в системный путь.

Я также сталкиваюсь с этой проблемой, используя nvm.

Та же проблема:

sharikovvlad:global svlad$ node -v
v7.10.0
sharikovvlad:global svlad$ yarn --version
0.24.4
sharikovvlad:global svlad$ sw_vers -productVersion 
10.12.4
# macOS Sierra 10.12.4

Я установил пряжу с менеджером пакетов brew.

Я, очевидно, решил проблему, добавив это в .bash_profile :

export PATH="$(yarn global bin):$PATH"sharikovvlad:~ svlad$

Но очевидно, что все пакеты будут повреждены после обновления узла.

Я пробовал пряжу global add ios-deploy. Бинарный файл существует в ~ / .config / yarn / global / node_modules / ios-deploy / build / Release /, но не в / usr / local / bin или любом другом месте, которое находится в PATH.

Та же проблема в Node v7.8.0 и Yarn версии v24.6 ... Я также пробовал использовать флаг --prefix

yarn global add prettier --prefix /Users/newuser/.nvm/versions/node/v7.8.0/

Не работает.

Я не уверен, почему эта проблема закрыта, если у людей все еще возникают проблемы с выяснением, куда чертовски пряжа помещает двоичные файлы, казалось бы, устанавливая их в одну или несколько папок (.config и .npm), но указывая на другую (подвал) & если веб-сайт пряжи четко не задокументировал эту проблему с рекомендациями для ясности.

Я не могу заставить мой редактор Atom найти и использовать мой глобальный eslint, установленный yarn.

Мне удалось это обойти. Проблема, похоже, в том, что версия Node для Homebrew добавляется в PATH позже, чем установка NVM. Как только я понял это, все, что я сделал, это удалил установленный Node Homebrew, и это сработало.

@volkanunsal Я не уверен, что понимаю, о чем вы

Извините, я имел в виду, что в моем случае проблема заключалась в том, что у меня также был другой
установка Node. Путь к этой установке был добавлен после NVM
установка, и поэтому имеет приоритет. Вот где пряжа кладет
глобальные пакеты, но это был не тот узел, который я использовал, поэтому мои команды для
пакет, который я установил с помощью yarn global, не работал. Это может не быть
такая же проблема в вашем случае, но я подумал, что об этом стоит упомянуть. Когда там
- это несколько установок Node, Yarn будет использовать ту, путь которой
последний раз добавлен в PATH вашей машины.

Для меня исправлено установкой префикса пряжи и переустановкой всех модулей

yarn config set prefix $(npm config get prefix)

При переключении версий узла через nvm мой yarn global bin не обновляется, что также является основной причиной проблемы.

ОБНОВИТЬ:
Даже после исправления неправильного yarn global bin вручную путем удаления папки ~/.yarn и повторной установки.
yarn global add appium прежнему ничего не создает в глобальной папке bin. Эта функция кажется полностью сломанной ...

Обсуждаемая здесь резолюция, кажется, исправляет это. Добавьте это в .bash_profile

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

Нет, не совсем. Это работает в ситуациях, когда у вас есть доступ к вашему .bash_profile . У большинства программ этого нет (запустите npm test и ваш package.json использует двоичный файл, который глобально установлен с yarn, вам не повезло). Если вы устанавливаете что-то глобально, оно должно быть немедленно доступно без какой-либо дополнительной настройки. Это нормально, если двоичные файлы устанавливаются в определенную папку yarn в любом месте на диске, если есть символическая ссылка на /usr/lobal/bin .

Мои тестовые примеры для этой команды будут (системы, подобные unix):

  • После установки пакета создаются символические ссылки для двоичных файлов на /usr/local/bin .
  • После обновления глобальных пакетов убедитесь, что символические ссылки все еще работают
  • После обновления yarn (и, возможно, сохранения глобально установленных пакетов где-нибудь в папке с версией yarn, например, path/to/yarn/vX.Y.Z/packages/... ), убедитесь, что символические ссылки все еще работают.

Поведение похоже на то, как работает Homebrew.

Это большая проблема, когда вы пытаетесь использовать Yarn внутри контейнера Docker.

@gossi , это не проблема с прямым исправлением.
Во многих ОС / usr / local / bin недоступен, вам может потребоваться root-доступ к нему, одного места может быть недостаточно, если вы используете несколько версий Node (nvm).

Не стесняйтесь предложить идеальное решение.

@bestander хорошо, давайте ограничим его платформами, где доступен /usr/local/bin ;)
Nvm - еще одна проблема, которая должна подчиняться этому, чтобы играть рука об руку друг с другом.

@bestander, как NPM решает эту проблему? Применимо ли их решение?

Есть ли кто-нибудь, кто хочет осмыслить все эти глобальные ПУТИ бункеров в ОС?
Не стесняйтесь начинать новый выпуск и присылать PR.
Код, который обновляет глобальные корзины, находится здесь https://github.com/yarnpkg/yarn/blob/master/src/cli/commands/global.js#L72 , выглядит довольно прямолинейно.

Я думаю, здесь у нас может быть отличный пользовательский опыт, но нам нужна помощь.

@bestander Думаю проблема в обновлении Cwd

отправить пиар :)

https://github.com/yarnpkg/yarn/pull/3458 - тоже в некотором роде

У меня все еще есть эта проблема :(

@JikkuJose Я все еще сталкиваюсь с этой проблемой. Я использую команду yarn global add prettier . Prettier устанавливается по пути .config/yarn/global/node_modules .

Я добавил yarn global bin в свой $PATH (в моей системе это /usr/local/bin ), но это бесполезно, когда что-то не устанавливается.

версия пряжи: 0.27.5
версия узла: v6.11.1

Я использую следующую команду для установки Gulp:

$ yarn global add gulp

Но это ничего мне не показывает:

$ ls -lah `yarn global bin` | grep gulp

$ cat /etc/issue
Ubuntu 17.04 \n \l
$ uname -a
Linux intrepid 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ node --version
v8.1.3
$ nvm --version
0.33.2

как это все еще проблема? npm от этого не страдает.

просто говорю.

Я перестал использовать пряжу только из-за этого. : /: /

Все было хорошо до пряжи 1.1.0, теперь мои глобалы не найдены

success Installed "[email protected]" with binaries:
      - bower
✨  Done in 10.40s.
 $ bower
fish: Unknown command 'bower'
$ uname -a
Darwin wpa-25-242.dyn.huji.ac.il 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58 P
ST 2016; root:xnu-3789.31.2~1/RELEASE_X86_64 x86_64

@hookdump @Spongman @bennypowers, как видите, эта проблема закрыта. Было бы здорово, если бы вы могли подать новую проблему с шагами воспроизведения и некоторыми подробностями о конфигурации вашей системы (например, вы пытаетесь это сделать как корневые пользователи, какая папка, которую использует пряжа по умолчанию, разрешена для записи и т. работаю над этим.

Этот кто-то также может быть вами, если вам интересно!

И затем, пожалуйста, дайте ссылку на это здесь, потому что именно туда Google отправил всех.

Может быть, у @hookdump , @Spongman или @bennypowers такая же проблема, как у меня? https://github.com/yarnpkg/yarn/issues/4702 ?

Почему проблема закрыта, но все еще происходит?

@yordis вы используете zsh ?

в этом случае проблема № 4702 может быть связана с вашей проблемой.

если ваша среда PATH настроена неправильно, вам необходимо это исправить. Выполните yarn global bin и echo $PATH чтобы начать копаться в решенной проблеме.

не должно быть закрыто. все еще есть проблема.

@ lili21, пожалуйста, напишите новый выпуск.

У меня такая же проблема с использованием zsh. yarn global bin возвращает /home/dandv/.yarn/bin , которого нет в $ PATH.

~ yarn global add polymer-cli
yarn global v1.3.2
[1/4] Resolving packages...
warning polymer-cli > [email protected]: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/
warning polymer-cli > [email protected]: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
warning polymer-cli > polyserve > @types/[email protected]: See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/12826
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - polymer
Done in 25.08s.
➜  19:17 polymer
zsh: command not found: polymer
➜  19:17 polymer-cli init
zsh: command not found: polymer-cli
➜  19:17 yarn --version
1.3.2

как это все еще проблема? npm от этого не страдает.

Затем выясните, как это работает с npm, и отправьте запрос на перенос?

ЕДИНСТВЕННЫЙ ответ владельца этого репо на эту огромную ветку жалоб на эту проблему - это извечный крик о повсеместных сбоях качества OSS: «Почини сам»?

Проекты с открытым исходным кодом - это проекты сообщества. Yarn создается не только разработчиками Facebook, но и более широким сообществом разработчиков ПО с открытым исходным кодом. Я работаю в Facebook, но это не имеет отношения к моему вкладу в Yarn, так как обычно я работал над этим вне рабочего времени.

Я просто устал от людей, которые думают, что им что-то должно сообщество, не давая ничего взамен. По этой причине некоторые разработчики с открытым исходным кодом теперь отключают раздел «проблемы» в своих репозиториях на GitHub. В частности, для проектов с небольшой командой разработчиков попытка работать над каждой отдельной проблемой - простой способ сгореть. Лицензия, с которой вы соглашаетесь при установке любого программного обеспечения, лицензированного по лицензии BSD или MIT (включая Yarn), явно указывает, что программное обеспечение предоставляется как есть, без каких-либо гарантий и никаких гарантий пригодности для определенной цели.

У нас в Facebook есть поговорка: «Код выигрывает аргументы». Вместо того, чтобы жаловаться на что-то, на самом деле найдите время, чтобы исправить это. это более продуктивное использование времени. В этом весь дух открытого исходного кода: сообщество людей, вносящих свой вклад в общую цель.

Что касается этой проблемы, мне просто кажется, что исполняемый каталог Yarn отсутствует в $PATH . Установщик явно сообщает вам, как добавить его к вашему пути, а установщик Windows сделает это автоматически (вероятно, мы должны начать делать это и в пакете Debian). Причина, по которой я предложил проверить, что делает npm, заключается в том, что они могут автоматически редактировать $PATH . Кому- то нужно будет провести расследование и посмотреть, что они делают. Это может сделать

Я тоже только что столкнулся с этой проблемой. Первый раз попробовал пряжу + посылку, и из-за этого она не «просто работала».

Почему эта проблема закрыта, когда все еще происходит? У меня около 2 недель на yarn, и только сегодня я столкнулся с глобальными pkgs, и они не работают с nvm. Кроме того, я установил префикс конфигурации пряжи и --prefix, и он не сработал, он продолжает установку в глобальный префикс по умолчанию ...
Возможно, я попробую исправить это через несколько дней ...

Заглянул в этот вопрос, как и все выше меня. Я ожидал, что _yarn_ будет устанавливать пакеты в том же месте, что и _npm_, при использовании флага -global .

Есть ли какие-либо причины или сценарии, по которым это не будет лучшим решением или решением по умолчанию?

  • Люди могут на самом деле установить это значение, отличное от значения по умолчанию (я делаю).
  • Этот путь, скорее всего, уже будет в наших переменных среды. (Устранение неполадок в качестве самого первого шага после любой _npm_ установки на машине Windows.)
  • Простые npm root -g или npm config get prefix показывают расположение глобально установленных модулей.

IMO Я думаю, нам следует подумать об изменении поведения по умолчанию yarn global для установки в том же месте, что и глобальный префикс _npm's_ .

Это действительно разумная идея.

Недавно у меня возникла проблема с глобальными путями в Linux, и это было сложно
чтобы найти путь, который мне нужно добавить в PATH.

Минусы в том, что это может стать серьезным изменением для людей, у которых уже есть
настроить их пути пряжи.
В некоторых случаях глобальный bin npm по умолчанию - / usr / local / bin или что-то в этом роде, и это
подразумевается использовать его с sudo, что не является подходом пряжи.

Интересно, может ли команда yarn global add просто проверить, установлен ли установленный bin
местоположение находится в PATH и вывести предупреждение, если это не так?
Сгладит ли это ситуацию?

Пт, 5 января 2018 г., в 5:12 Марк Дрейк [email protected] написал:

Заглянул в этот вопрос, как и все выше меня. Я ожидал, что
yarn будет устанавливать пакеты в том же месте, что и npm ,
при использовании флага -global.

Есть ли причины или сценарии, по которым это было бы не лучшим или
решение по умолчанию?

  • Люди могут на самом деле установить это значение, отличное от значения по умолчанию (я
    делать).
  • Этот путь, скорее всего, уже будет в наших переменных среды.
    (Устранив это как самый первый шаг после любого npm
    установить на машине с Windows.)
  • Простой префикс npm root -g или npm config get показывает местоположение
    глобально установленных модулей.

IMO Я думаю, нам следует подумать об изменении поведения пряжи по умолчаниюglobal для установки в то же место, что и глобальный префикс npm .

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/yarnpkg/yarn/issues/648#issuecomment-355551314 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ACBdWMvBOVNFKloPPFBzpar60Gu0Qpbrks5tHh-egaJpZM4KT3-H
.

Интересно, может ли команда 'yarn global add' просто проверить, находится ли установленное местоположение корзины в PATH, и распечатать предупреждение, если это не так?

Мне нравится эта идея. Что-то другое было бы критическим изменением, которое мы сделали в выпуске 1.0, и я не думаю, что возвращение этого обратно - хорошая идея, если нет других причин. На https://github.com/yarnpkg/yarn/pull/3721 по этому поводу было очень долгое обсуждение, вопросы ссылок и PR.

Простой префикс npm root -g или npm config get показывает расположение глобально установленных модулей.

Пряжа имеет эквивалент yarn global dir .

Если вы обнаружите, что двоичные файлы в машинописном тексте не установлены и у вас установлен @angular/cli , просто удалите его и попробуйте снова установить машинописный текст. Это сработало для меня.

Странно? Абсолютно!

@Fahrradflucht , абсолютно верно. Странно, почему в документации не предлагается добавить путь пряжи к $ PATH среды.

Используя ubuntu 17.10, я решил проблему:

$ echo export PATH = \ $ PATH: $ (глобальная корзина пряжи) >> ~ / .profile
$ source ~ / .profile

@DavidNorena В документации это действительно упоминается, но поскольку это этап установки, он находится на странице установки. Но даже тогда это все еще не очень понятно, так как на вкладке Linux на странице установки https://yarnpkg.com/en/docs/install раздел Настройка пути находится после инструкций для каждого дистрибутива Linux. Я полагаю, что большинство людей используют Ubuntu (который стоит первым в списке), поэтому никогда не прокручивайте страницу вниз и не просматривайте дополнительный этап настройки.

Но все еще не ясно, я не знал, что есть раздел PATH SETUP , я просто выполнил шаги для своей версии Linux Box, но не было указаний, переходить на конец страницы или нет.

Спасибо @jthegedus и в следующий раз посмотрю все разделы в документации, никто не знает. : D

Неоднократно сталкиваясь с этой проблемой, я наконец нашел решение для своего сценария, которым, как я думал, поделюсь, если он кому-то поможет.

Для справки, я использую MacOS (_Sierra_), использую zsh (и _oh-my-zsh_, установленный с _Homebrew_), NVM (_0.33.8_ установлен через _Homebrew_ _-- без-node_)

Глобальная корзина Yarn была установлена ​​на /users/MyUserName/usr/local/bin и zsh не распознал бы пакеты Yarn, установленные глобально, поскольку этого не было в моем PATH . Хотя я мог бы добавить свой путь пользователя, я решил вместо этого настроить глобальную корзину Yarn на использование /usr/local/bin , который уже был в PATH, который работал и не ломался при переключении версий Node с NVM .

У меня аналогичная проблема, особенно при глобальной установке typescript .

Выполнение yarn global bin выводит /usr/local/bin и все другие глобальные пакеты имеют свои двоичные файлы, добавленные (символические ссылки) в /usr/local/bin как и ожидалось.

Когда я выполняю yarn global add typescript , вывод будет:

[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "[email protected]" with binaries:
      - tsc
      - tsserver
✨  Done in 4.89s.

Попытка выполнить команды tsc или tsserver приводит к command not found: tsc .
Поиск под /usr/local/bin показывает ни tsc ни tsserver двоичных файлов.

  • Это отлично работает при использовании npm (проверено v5.6.0 )
  • Я использую yarn v1.5.1 , macOS 10.13.3

@Nexxado Я выполнил ваши шаги, как вы описали, и получил те же сообщения от Yarn. Однако пакеты были установлены, как и следовало ожидать, и отображаются в /usr/local/bin . Ввод tsc -v выводит Version 2.8.1 .
Я использую nvm и node version 9.6.1 с npm 5.6.0 .

Пробовали ли вы установить это раньше, и если да, то смогли ли вы убедиться, что он был удален? У меня были проблемы с некоторыми пакетами, которые я установил с более ранними версиями npm или homebrew которые мешали глобальным установкам через Yarn.

@SiriusBits

Пробовали ли вы установить это раньше, и если да, то смогли ли вы убедиться, что он был удален? У меня были проблемы с некоторыми пакетами, которые я установил с более ранними версиями npm или homebrew, которые мешали глобальным установкам через Yarn.

Это возможно, не помню, делал ли я.
Я использую nvm с node v8.9.3 и npm 5.6.0 .

Удалось ли вам исправить те «определенные пакеты», о которых вы говорили?

Заранее спасибо :)

@Nexxado Я сделал. У меня был Gulp CLI, который был установлен с npm и не мог заставить работать глобальную установку с Yarn. Как только я удалил его и переустановил с помощью Yarn, он заработал.

Я установил узел с помощью asdf-nodejs , и у меня такая же проблема с пряжей 1.6.0 в macOS

добавление этой строки в файл .zshrc решило проблему.

export PATH=/Users/rods/.asdf/installs/nodejs/8.9.4/.npm/bin:$PATH

Почему этот вопрос закрыт? У меня такая же проблема в Linux

@jthegedus @DavidNorena Не могли бы вы улучшить документацию, чтобы другие могли получить пользу?

@BYK Я

Столкновение с той же проблемой в Window 10.

yarn global dir и yarn global bin оба находятся в% PATH%, но двоичные файлы не установлены.

удаление и повторное добавление пакета не помогло.

Пряжа 1.7.0
Node.js 10.3.0

Тоже самое.

Все еще не работает в 1.10.1:

$ yarn global add typescript
yarn global v1.10.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.47s.

$ yarn global bin
C:\Users\mikem\AppData\Local\Yarn\bin

$ yarn global list
yarn global v1.10.1
Done in 0.14s.

Я вижу, что ppl добавляет путь к .bashrc

export PATH="$(yarn global bin):$PATH"

экспорт PATH = "$ (глобальная корзина пряжи): $ PATH"

NB, ницца, 666

Та же проблема. Установлена ​​подача с yarn global add serve . После этого запуск подачи не выполняется: «serve: команда не найдена». Обновление PATH вручную мне не помогло. Я установил serve с npm, и теперь он работает. Действительно странно, что эта проблема старше 2 лет и до сих пор не исправлена.

- Редактировать - Решено. вид # 648
По-прежнему сталкиваюсь с этой проблемой. Установил пряжу на Fedora, использую nvm для управления версиями узлов. установил pug-cli в пряжи по всему миру. Запуск мопса вернул команду не найдена. При установке pug-cli с помощью npm команда запускается.

# 648 (комментарий) не помогает?

Виноват. Это решает проблему.

У меня возникла проблема с NVM в контейнере Docker, извлекающем образ CentOS. Это не проблема, если ПУТЬ неверен. Я обыскал все изображение. Мои глобальные установки абсолютно нигде не устанавливаются. Кажется, что на шаге 1/4 произошел сбой при разрешении пакетов.

export PATH="$(yarn global bin):$PATH"

У меня работает на Ubuntu.

sudo yarn global add ignite-cli
Работал на меня

Я не могу писать на /usr/local/bin из-за отсутствия прав доступа sudo :

$ yarn global add create-react-app
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - create-react-app
error Cannot create "/usr/local/bin/create-react-app" due to insufficient permissions.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

/usr/local/bin находится в PATH , ~/.config/yarn/global/node_modules/.bin/ находится в PATH но ни yarn global ни yarn create нельзя использовать.

Пожалуйста, попробуйте обновить пряжу до 1.22.4 @hoefling. Также это может быть проблема с вашей настройкой. Как вы устанавливали пряжу?

@DanielRuf спасибо за ответ! Системный администратор установил 1.22.4 :

$ dnf info yarn
Yarn Repository                                                                                                                                                                    346 kB/s | 363 kB     00:01    
Installed Packages
Name         : yarn
Version      : 1.22.4
Release      : 1
Architecture : noarch
Size         : 5.1 M
Source       : yarn-1.22.4-1.src.rpm
Repository   : <strong i="8">@System</strong>
From repo    : yarn
Summary      : Fast, reliable, and secure dependency management.
URL          : https://yarnpkg.com/
License      : BSD
Description  : Fast, reliable, and secure dependency management.
...

Похоже, пакет получен из собственного репо yarn .

yarn global v1.21.1

В вашем последнем ответе это было 1.21.1.
Это все еще происходит? Я предлагаю открыть новую проблему и проверить другие проблемы на предмет решения.

@DanielRuf, вы правы, я попытался настроить локальную копию yarn и перейти на более раннюю версию, чтобы увидеть, является ли это регрессом. К сожалению, ошибка также воспроизводится с помощью 1.22.4 . Открою новую проблему, если сам не найду решения.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги