簡體   English   中英

無法啟動 reactJS 服務器 | 錯誤:“rbenv:紗線:找不到命令”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM