[英]Cannot start reactJS server | error: "rbenv: yarn: command not found"
我最近為一些 ruby 項目安裝了 rbenv,但現在無法為另一個項目運行我的 reactjs 服務器。
運行yarn start
的錯誤消息是rbenv: yarn: command not found
根據此鏈接,該錯誤可能與墊片有關。 所以我在終端中運行了以下代碼:
for ver in $(rbenv whence yarn); do
RBENV_VERSION="$ver" gem uninstall -ax yarn
rm -f "$(rbenv prefix "$ver")/bin/yarn"
done
rbenv rehash
# now check the yarn executable again:
which -a yarn
當運行which -a yarn
我得到:
/home/user/.rbenv/shims/yarn
/home/user/.rbenv/shims/yarn
/home/user/.nvm/versions/node/v14.8.0/bin/yarn
/home/user/.rbenv/shims/yarn
/home/user/.rbenv/shims/yarn
/usr/bin/yarn
/bin/yarn
顯然我在這里遺漏了一些東西
您鏈接到的線程中的該代碼將從您可能已使用具有它的 rbenv 安裝的 Ruby 的任何版本中刪除紗線墊片。 但是,某些版本的 Rails(可能還有其他 Ruby 項目?)在它們的bin/
目錄中也有一個 yarn shim。 每次調用rbenv rehash
以重新生成 binstub 時,此 shim 的存在會導致將紗線 shim 添加到~/rbenv/shims/
中。 rbenv rehash
命令可以在每次加載 shell 環境時自動調用,如果您的環境使用 rbenv 設置以使用eval "$(rbenv init -)"
執行此操作。 ~/rbenv/shims/
中的 shim 是導致這個rbenv: yarn: command not found
錯誤的原因,無論何時你調用 yarn。
如果將項目中的 shim 從bin/
移動到.bundle/bin/
,然后運行rbenv rehash
,應該可以解決問題。 如果您在全局范圍內安裝了 yarn,那么您還可以考慮完全從項目中刪除 shim,因為它所做的只是為您調用 yarn,如果未安裝,則會給您一個錯誤。
除了從所有 rbenv 版本中卸載yarn
gem 之外,您還需要更改所有 rails 項目(以及任何其他使用 bundler 的 rbenv 管理的項目)的 binstubs 路徑。
首先,運行此命令以查看rbenv-binstubs
正在尋找 shimmable 可執行文件的項目: cat "$(rbenv root)/bundles"
cd
進入每個目錄並運行bundle install --binstubs.bundle/bin
以設置 binstubs 路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.