Lệnh toàn cầu của Yarn không hoạt động


114

Tôi đang làm việc với Yarn v0.16.1. Nếu tôi hiểu đúng (theo tài liệu ), yarn global add <package>nên tương đương với npm install -g <package>. Tuy nhiên, khi tôi chạy ví dụ trong docs (with create-react-app), lệnh chạy thành công nhưng create-react-appsau đó không có sẵn từ dòng lệnh. Đây là kết quả:

$ 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

Thực hiện cài đặt toàn cầu với npm có kết quả như mong đợi và mọi thứ đều hoạt động. Tôi đang thiếu gì với sợi?

Câu trả lời:


171

Bạn nên thêm export PATH="$PATH:$(yarn global bin)"vào của bạn ~/.bash_profilehoặc bất cứ điều gì bạn sử dụng. Nó sẽ giải quyết vấn đề.

Tùy thuộc vào cách bạn cài đặt nó, thư mục chung của Yarn thay đổi vì một số lý do. Bạn có thể theo dõi vấn đề này tại đây.


6
Bạn cũng nên nguồn các ".bash_profile" tập tin sau khi nó được chỉnh sửa để cập nhật những thay đổi vỏ bash của bạn: source ~/.bash_profile.
tfmontague

1
Trên một số hệ thống, bạn có thể cần phải chạy yarn global binbản thân và sử dụng url chữ trong ~/.bash_profilethay vì subshell, một cái gì đó như thế này:export PATH="$PATH:/usr/local/bin"
Nathan Arthur

Tôi đã phải làm theo lời khuyên từ nhận xét này trong vấn đề được chỉ ra trong câu trả lời. 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
Đối với người dùng Ubuntu gặp phải sự cố này, hãy thêm export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"vào ~ / .bash_profile của bạn
Pitt

1
đối với zsh, chỉ cần đặt .zshrc
Shad

47

Cập nhật tháng 12 năm 2018

Tôi chỉ cập nhật đường dẫn đã không hiệu quả. Tôi cũng phải đặt tiền tố sợi.

  • Ubuntu 18.04.1 LTS (bionic)
  • sợi 1.12.3
  • npm v3.5.2
  • nút v8.10.0
  • zsh 5.4.2

Các bước

  1. Xác nhận đường dẫn thùng rác chung của bạn

    yarn global bin
    

Tôi đã nhận: /home/username/.yarn/bin

  1. đặt tiền tố sợi:

    đảm bảo tiền tố sợi của bạn là thư mục mẹ của thư mục bin của bạn. Bạn có thể xác nhận bằng cách chạy

    yarn config get prefix
    

    khi tôi chạy điều này, tiền tố của tôi trống, vì vậy tôi đặt nó:

    yarn config set prefix ~/.yarn
    
  2. thêm phần sau vào ~ / .bash_profile hoặc ~ / .bashrc

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

    đối với người dùng zsh, hãy nhớ thêm dòng này vào ~ / .zshrc

  3. khởi động lại shell của bạn hoặc bắt đầu một cái mới

    bash -l hoặc là zsh


Cảm ơn, hoạt động hoàn hảo! Đã thử nghiệm trên Ubuntu 18.04 trên WSL
robe007 29/07/19

3

Trong trường hợp của tôi yarn global binkhông hoạt động.

Hãy thử một brew reinstall yarnnếu đó là cách bạn đã cài đặtyarn

👍🏻


2

Trên Ubuntu, tôi đã sửa bằng cách cài đặt gói như thế này:

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

2

Gặp phải vấn đề này nhưng trên hệ thống Windows. Tất cả những gì tôi phải làm là thêm thùng chứa toàn cục sợi vào biến PATH.

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

Hãy nhớ thay đổi YOURUSERNAME thành tên người dùng tài khoản của bạn.

Bạn có thể kiểm tra xem thùng rác chung của mình đang ở đâu bằng cách chạy

yarn global bin

Và đừng quên khởi động lại cửa sổ CMD mà bạn đang làm việc. Chúc bạn viết mã vui vẻ!


1
Đã giải quyết sự cố của tôi trên Windows 10 sau khi chạy 'fiber global add vuepress' và tạo read me, không thể tìm thấy lệnh 'vuepress dev' trước đó.
Boz

1

Để cài đặt lại chạy bên dưới.

brew install -g yarn

// Lưu ý: (đang cập nhật homebrew) cho người dùng Mac.

brew reinstall yarn

// (nếu vẫn không tìm thấy sợi)


1

Đây là quy trình tôi đã sử dụng trên Mac OSX El Capitan.

  1. Cố gắng cài đặt sợi (tôi đã sử dụng lệnh Curl) nếu bạn đã có nó. Điều này sẽ hiển thị nếu nó đã được cài đặt và sẽ cung cấp cho bạn thư mục hiện tại nơi nó tồn tại.

Như thế này:

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

Nó sẽ hiển thị một cái gì đó như thế này:

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.

Đừng loại bỏ nó. Chuyển sang bước 2.

  1. Sao chép thư mục được liệt kê ở trên. Mở hồ sơ của bạn. Tôi đang sử dụng zsh. Vì vậy, của tôi đã được ~/.zshrc. Bạn có thể tìm thấy thông tin của bạn và thêm ở đây .

  2. Sao chép thông tin sau (thay thế chi tiết thư mục và tên người dùng của bạn nếu cần, thông tin bạn nhận được từ thông báo lỗi cài đặt).

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

  1. Hãy thử chạy yarn versionđể kiểm tra xem nó có hoạt động không. Nếu có, bạn sẽ thấy số phiên bản được hiển thị trong thiết bị đầu cuối của mình.

Đó là nó, và những gì đã làm việc cho tôi.


0

Khi chuyển từ bash sang zsh, tôi gặp lỗi tương tự, nó hoạt động với tôi:

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"

Theo tôi hiểu, lỗi của tôi đã phát sinh do thiếu quyền truy cập vào trình quản lý phiên bản


0

AndrewD đã đưa ra một câu trả lời tuyệt vời, nhưng đối với những người trên Windows thì hơi khác, đặc biệt là bước 3.

Vui lòng không sử dụng lệnh setxnhư @Thapedict đã nói. Nó sẽ xóa tất cả các đường dẫn trước đây của bạn mà bạn có và chỉ thay thế nó bằng một thư mục nhất định. Nếu bạn muốn sử dụng setx, tôi nghĩ có thể có một cờ để khiến nó thêm các biến đường dẫn hiện có, nhưng tôi không biết cái nào. Chỉ sử dụng setx sẽ không thêm vào nó.

Tôi chỉ thực hiện Thuộc tính hệ thống> Nâng cao> Biến môi trường> Chỉnh sửa đường dẫn> Mới> c: \ users \ YOURUSERNAME \ appdata \ local \ fiber \ bin

để đảm bảo bạn không xóa các biến trước đó của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.