錯誤代碼
您是外掛作者,想要宣告自己的錯誤代碼,與這裡提供的語意不符嗎?請放棄一個字元,並使用 YNX
前綴(例如 YNX001
)取代 YN0
!
遵守此慣例將有助於我們的使用者找出哪些錯誤代碼可以在此文件上找到,哪些錯誤代碼應檢查他們使用的外掛的個別文件。
YN0000 - UNNAMED
此代碼用於記錄一般訊息,主要是對齊 Yarn 輸出的所有列。不用擔心!
YN0001 - EXCEPTION
程式已擲回例外狀況。
此錯誤通常不應發生(它應指向此頁面中不同的錯誤訊息,以便正確記錄),因此應視為 Yarn 中的錯誤。歡迎提出問題,或提出更棒的拉取請求,以修復錯誤。
YN0002 - MISSING_PEER_DEPENDENCY
封包要求同儕依賴,但依賴樹中一個或多個父層未提供。
請注意,Yarn 在依賴樹的每個層級強制執行同儕依賴。也就是說,如果 ─D>
是依賴,─P>
是同儕依賴,
# bad
project
├─D> packagePeer
└─D> packageA
└─P> packageB
└─P> packagePeer
# good
project
├─D> packagePeer
└─D> packageA
├─P> packagePeer
└─D> packageB
└─P> packagePeer
根據您的情況,有多種選擇
-
packageA
的作者可以透過新增對packagePeer
的同儕依賴來修正此問題。如果相關,他們可以使用 選擇性同儕依賴 來達成此目的。 -
packageB
的作者可以透過將packagePeer
同儕依賴標示為選擇性來修正此問題 - 但前提是同儕依賴實際上是選擇性的! -
project
的作者可以透過packageExtensions
組態選項手動覆寫packageA
和/或packageB
定義來修正此問題。
若要進一步了解此問題,請查看 此部落格文章。
YN0003 - CYCLIC_DEPENDENCIES
兩個具有建置指令碼的封包具有循環依賴。
循環依賴是一個麻煩的問題。當封包 A
依賴封包 B
,反之亦然時,就會發生這種情況。有時會透過多個封包的鏈產生 - 例如當 A
依賴 B
,B
依賴 C
,C
依賴 A
時。
雖然循環依賴在一般 JavaScript 案例中可能運作良好(事實上,在大部分情況下 Yarn 都不會對此發出警告),但一旦涉及建置指令碼,它們就會造成問題。的確,為了建置封包,我們首先必須確保其自己的依賴已正確建置。當兩個封包互相參照時,我們如何做到這一點?由於無法推論出第一個建置的封包,因此此類模式將導致每個受影響封包的建置指令碼被忽略(並發出警告)。
網路上已有良好的文件說明如何消除循環依賴,最簡單的方法是將程式共用部分萃取到沒有依賴關係的第三個封包中。因此,我們所描述的第一個案例將變成 A
依賴 C
,B
依賴 C
,C
不依賴任何東西。
YN0004 - DISABLED_BUILD_SCRIPTS
一個套件有建置指令碼,但它們已在整個專案中停用。
建置指令碼可透過使用 enableScripts
設定在全球基礎上停用。當發生這種情況時,仍會發出警告,以讓您知道安裝可能尚未完成。
將警告降級為通知的最安全方法,是透過使用 dependenciesMeta[].built
鍵,明確停用受影響套件的建置指令碼。
YN0005 - BUILD_DISABLED
一個套件有建置指令碼,但它們已透過其設定停用。
建置指令碼可透過使用 package.json
檔案中的 dependenciesMeta
設定,在每個專案基礎上停用。當發生這種情況時,仍會發出通知,以讓您知道安裝可能尚未完成。
YN0006 - SOFT_LINK_BUILD
一個套件有建置指令碼,但透過軟連結連結。
對於 Yarn,當一個套件由套件管理員擁有時,就是硬連結。在這些情況下,Yarn 通常會將具有建置指令碼的套件複製到專案本機快取中,這樣具有多個相依性樹狀結構的多個專案就不會使用相同的建置成品。那麼所謂的「軟連結」有什麼問題?
當套件管理員不擁有套件來源時,就是軟連結。一個範例是工作區,或透過 portal:
規格參照的相依性。在這些情況下,Yarn 無法安全地假設在那裡執行建置指令碼是預期的行為,因為這可能會涉及變更您的專案,甚至更糟的是,可能是您的磁碟上由多個專案共用的外部位置。由於 Yarn 避免執行任何不安全的操作,因此它無法在軟連結上執行建置指令碼。
有一些解決方法
-
使用
file:
代替portal:
將導致使用硬連結,而不是軟連結。另一面是,套件也會被複製到快取中,這表示變更套件來源將需要您執行YARN_UPDATE_FILE_CACHE=1 yarn install
,才能讓您的變更被考量進去。 -
你可以手動執行
yarn run postinstall
(或任何命名為你的建置指令碼) 從受影響套件的目錄中。這需要你知道它們必須被呼叫的順序,但通常是最安全的選項。 -
你可以簡單地避免使用帶有軟連結的建置指令碼。雖然這個建議看起來像是「透過不遇到問題來解決問題」的糟糕案例,但請考慮到開發中的建置指令碼可能不是從開發人員體驗的角度來看最好的效果 - 它們通常表示你需要在能夠看到變更之前執行指令碼,這通常不是你想要的。
YN0007 - MUST_BUILD
必須建置套件。
當 Yarn 希望讓你了解套件需要建置才能完成安裝時,就會出現此資訊訊息。這通常只會在兩種情況下發生:套件從未建置過,或其先前的建置失敗 (傳回非零退出碼)。
YN0008 - MUST_REBUILD
必須重建套件。
當 Yarn 希望讓你了解套件需要重建才能完成安裝時,就會出現此資訊訊息。這通常會在單一情況下發生:當套件的相依性樹已變更時。請注意,這也包括其傳遞相依性,有時可能會導致意外的重建 (例如,如果 A
相依於 B
,而 B
相依於 C@1
,如果 Yarn 因某種原因決定 C
應升級到 C@2
,則 A
需要重建)。
YN0009 - BUILD_FAILED
套件建置失敗。
此問題通常不是來自 Yarn 本身,而只是表示描述為具有建置指令的套件無法成功建置。
若要查看實際的錯誤訊息,請閱讀報告中連結的文件。它將包含失敗指令碼的完整輸出。
YN0010 - RESOLVER_NOT_FOUND
找不到給定套件的解析器。
解析器是負責將範圍 (^1.0.0
) 轉換為參考 (1.2.3
) 的元件。它們各自包含自己的邏輯來執行此操作 - semver 解析器是最著名的解析器,但遠不是唯一的解析器。GitHub 解析器將 GitHub 儲存庫轉換為 tarball URL,Git 解析器正規化傳送到 git 的路徑,... 每個解析器負責不同的解析策略。缺少解析器表示缺少其中一種策略。
此錯誤通常是由於缺少 Yarn 外掛程式所導致。
YN0011 - FETCHER_NOT_FOUND
找不到給定套件的擷取器。
擷取器是從遠端位置取得參考和原始碼的元件。semver 擷取器可能會從某些註冊表中擷取套件,而工作區擷取器只會重新導向到可找到來源的磁碟位置。
此錯誤通常是由於缺少 Yarn 外掛程式所導致。
YN0012 - LINKER_NOT_FOUND
找不到給定套件的連結器。
連結器是負責從擷取器傳回的成品中萃取來源,並以目標環境可理解的方式將其置於磁碟上的元件。Node 連結器會使用 Plug'n'Play 策略,而 PHP 連結器則會使用自動載入策略。
此錯誤通常是由於缺少 Yarn 外掛程式所導致。
YN0013 - FETCH_NOT_CACHED
找不到給定套件的快取中的套件,將從其遠端位置擷取。
當套件從其遠端位置下載時,Yarn 會將其儲存在稱為快取的特定資料夾中。然後,下次要下載此套件時,Yarn 只會檢查此目錄,並在可用時使用儲存的套件。此訊息只表示在那裡找不到套件。這不是什麼大問題,但您可能應該盡可能限制它 - 例如透過使用零安裝。
YN0014 - YARN_IMPORT_FAILED
無法從 v1 鎖定檔正確匯入鎖定檔。
v2 版本包含 Yarn 設計方式的重大變更,而鎖定檔格式就是其中之一。在某些罕見情況下,v1 鎖定檔中包含的資料與我們儲存在 v2 檔案中的資料不相容。發生這種情況時,Yarn 會發出此警告並再次解析套件描述符。只有此套件會受到影響;所有其他套件仍會如預期般匯入。
YN0015 - REMOTE_INVALID
遠端來源傳回無效資料。
當遠端來源傳回與我們預期不符的值時(例如缺少欄位),解析器和擷取器會擲回此錯誤。
YN0016 - REMOTE_NOT_FOUND
遠端來源傳回有效資料,但告知我們找不到套件。
當遠端來源告知解析器和擷取器,針對其提出要求的套件不存在時,會擲回此錯誤。如果套件已取消發布,則可能會發生這種情況,而 Yarn 通常無法解決此問題。
YN0017 - RESOLUTION_PACK
目前未使用此錯誤碼(它用於列印每個解析演算法傳遞所參與的套件數,但與其有用性相比,它被認為太冗長)。
YN0018 - CACHE_CHECKSUM_MISMATCH
快取中套件的檢查碼與鎖定檔預期的不符。
通常在您出於除錯目的編輯快取中的 zip 檔案內容後,會發生這種情況。請使用下列三個命令之一來略過它
YARN_CHECKSUM_BEHAVIOR=reset
會移除快取中的檔案並再次下載它們YARN_CHECKSUM_BEHAVIOR=update
會更新鎖定檔,以包含新的檢查碼YARN_CHECKSUM_BEHAVIOR=ignore
會使用現有檔案,但不會更新鎖定檔
YN0019 - UNUSED_CACHE_ENTRY
在安裝相依項時,已偵測到快取中的檔案未被使用。
執行 yarn cache clean
會導致 Yarn 移除 .yarn/cache
中的所有內容。
YN0020 - MISSING_LOCKFILE_ENTRY
鎖定檔中找不到套件描述。
許多指令(例如 yarn run
)需要鎖定檔處於與目前專案一致的狀態才能正常運作。當 Yarn 偵測到你的專案參照了未列在鎖定檔中的套件(通常是因為你在未執行 yarn install
的情況下修改了 dependencies
欄位,或因為你新增了一個工作區)時,就會產生這個錯誤。執行 yarn install
幾乎可以確定會修正這個特定錯誤。
YN0021 - WORKSPACE_NOT_FOUND
相依性使用 workspace:
範圍,無法解析為現有工作區。
workspace:
協定是 Yarn v2 中出現的新功能,允許鎖定目前的專案中的特定工作區,而不冒險從其他來源提取資料(如果工作區不存在)。這個錯誤明確表示工作區不存在,原因如錯誤訊息所述。
YN0022 - TOO_MANY_MATCHING_WORKSPACES
這個錯誤應該被視為過時且不存在;如果你有這個錯誤,請開啟問題。
YN0023 - CONSTRAINTS_MISSING_DEPENDENCY
你的其中一個工作區應該相依於相依性,但沒有。
已實施 約束,宣告指定的工作區必須相依於指定相依性的指定範圍。由於工作區目前沒有相依性,因此 Yarn 在執行 yarn constraints
時會產生這個錯誤。若要修正它,只需執行 yarn constraints --fix
,它將自動修正所有此類錯誤。
YN0024 - CONSTRAINTS_INCOMPATIBLE_DEPENDENCY
您的其中一個工作區應該依賴某個特定版本的依賴項,但並未依賴。
已實施 約束,宣告指定的工作區必須相依於指定相依性的指定範圍。由於工作區目前沒有相依性,因此 Yarn 在執行 yarn constraints
時會產生這個錯誤。若要修正它,只需執行 yarn constraints --fix
,它將自動修正所有此類錯誤。
YN0025 - CONSTRAINTS_EXTRANEOUS_DEPENDENCY
您的其中一個工作區不應該依賴它列出的其中一個依賴項。
已實施 約束,宣告指定的工作區必須相依於指定相依性的指定範圍。由於工作區目前沒有相依性,因此 Yarn 在執行 yarn constraints
時會產生這個錯誤。若要修正它,只需執行 yarn constraints --fix
,它將自動修正所有此類錯誤。
YN0026 - CONSTRAINTS_INVALID_DEPENDENCY
您的其中一個工作區列出一個無效的依賴項。
已套用一個約束,宣告指定的工作區在目前狀態下可能不應該依賴指定的依賴項。由於目前確實依賴,因此 Yarn 在執行 yarn constraints
時會發出此錯誤。由於 Yarn 的觀點來看,此錯誤的修正方式不明確,因此需要手動修正。
YN0027 - CANT_SUGGEST_RESOLUTIONS
Yarn 無法為您新增至專案的套件找出適當的範圍建議。
在執行 yarn add
時,如果沒有為要新增的套件新增明確的範圍,Yarn 會嘗試找出符合您意圖的版本。一般來說,這表示它會優先考慮專案工作區,如果找不到,則會嘗試查詢 npm 登錄,以取得已發布版本的清單,並使用其中最高的版本。此錯誤表示此程序失敗,而且 Yarn 無法順利找出應該新增至專案的套件版本。
YN0028 - FROZEN_LOCKFILE_EXCEPTION
如果 Yarn 要完成安裝,您的鎖定檔可能會被修改。
傳遞 --immutable
選項給 yarn install
時,Yarn 會確保鎖定檔不會在處理過程中被修改,如果發生這種情況(例如鎖定檔中缺少新增加的套件,或當前的 Yarn 版本在與鎖定檔搭配使用之前需要進行某種遷移),它將會擲回例外。
此選項通常用於您的 CI 和生產伺服器,而修正此錯誤應僅需在您的本機開發環境上執行 yarn install
,並提交包含已更新鎖定檔的 PR 即可。
YN0029 - CROSS_DRIVE_VIRTUAL_LOCAL
已移除:虛擬環境不再使用符號連結實作。
YN0030 - FETCH_FAILED
此錯誤代碼目前未使用;我們理想上希望說明擷取失敗的原因,而不是原因。
YN0031 - DANGEROUS_NODE_MODULES
Yarn 正在使用 即插即用 安裝套件,但已找到 node_modules
資料夾。
當偵測到您的專案包含似乎實際上包含套件的 node_modules
資料夾時,會發出此警告。不建議這樣做,因為它們可能是您之前使用的任何套件管理員的遺留物,並且可能會混淆您的工具,並導致您陷入「在我的機器上運作」的情況。
YN0032 - NODE_GYP_INJECTED
在某些情況下,Yarn 可能會偵測到某個套件需要 node-gyp
,而此套件並未明確列出此依賴項。此行為是出於舊有原因,不應依賴以下原因
-
偵測是否隱含需要
node-gyp
的主要方式是檢查套件是否包含bindings.gyp
檔案。不過,執行此檢查表示在 Yarn 解析相依性樹狀結構時,已知道套件清單。這需要在解析步驟中擷取所有 npm 檔案(而不是等到專用的擷取步驟),而這一切只是為了這個有問題的功能。 -
node-gyp
上的隱含相依性不會向套件管理員提供任何提示,說明哪些版本的node-gyp
與正在建置的套件相容。Yarn 會盡力新增對npm:*
的隱含相依性,但它可能是錯誤的,而我們無法得知 - 您的安裝只會在使用不相容版本編譯時意外崩潰。
省略 node-gyp
的套件通常會這麼做,目的是在不需要建置套件(預先建置的二進位檔)時減少最終相依性樹狀結構中的套件數量。雖然這是一個合理的願望,但這麼做違反了套件管理員規則,我們寧可透過專用功能,而不是透過這種駭客手法來解決這個問題。在此同時,我們強烈建議您考慮透過 WebAssembly 預先建置原生相依性,如果可能的話 - 這樣 node-gyp
問題就會完全消失。
YN0046 - AUTOMERGE_FAILED_TO_PARSE
當在 yarn.lock
檔案中找到 Git 衝突標記,而且無法解析其中一個或兩個個別候選鎖定檔時,就會觸發此錯誤。這通常是因為以下兩種情況之一
-
如果您正在使用 Yarn v2 的分支上作業,並且嘗試使用 Yarn v1 合併分支,就會觸發此錯誤(v1 鎖定檔不是 Yaml,這會阻止它們被解析。即使我們可以,它們與 v2 鎖定檔相比,也不包含足夠的資訊)。
- 解決此問題最簡單的方法是使用
git checkout --theirs yarn.lock
,然後再使用yarn install
(可以再使用yarn cache clean
來移除不再需要的任何檔案)。這將導致重新匯入 v1 鎖定檔。v2 解析將會遺失,但 Yarn 會偵測到它,並重新解析所有解析。
- 解決此問題最簡單的方法是使用
-
如果您有多層衝突。Yarn 不支援此類衝突,您必須找出方法,讓它只有兩層。這通常是透過先解析兩個分支之間的衝突,然後在先前步驟和第三個分支的合併結果中再次解析衝突來完成的。
YN0047 - AUTOMERGE_IMMUTABLE
當 Yarn 在不可變模式下執行時,在 yarn.lock
檔案中找到 Git 衝突標記時,會觸發此錯誤 (yarn install --immutable
).
在此模式下,Yarn 不允許編輯任何檔案,甚至無法自動解決衝突。此模式通常用於 CI,以確保專案在合併至主幹之前始終處於正確狀態。
若要解決此問題,請嘗試在電腦上再次執行 yarn install
,但不要使用 --immutable
旗標,如果命令執行成功,請提交變更。
YN0048 - AUTOMERGE_SUCCESS
當在 yarn.lock
檔案中找到 Git 衝突標記,但 Yarn 已自動修復時,會發出此資訊訊息。不需要執行其他操作,所有內容都應能正常運作!
YN0049 - AUTOMERGE_REQUIRED
當在 yarn.lock
檔案中找到 Git 衝突標記時,會發出此資訊訊息。然後,Yarn 會嘗試根據其內部啟發法自動解決衝突。
自動合併邏輯相當簡單:它會從拉取的分支取得鎖定檔案,透過新增來自本地分支的資訊來修改鎖定檔案,並再次執行 yarn install
,以修復在此過程中可能遺失的任何內容。
YN0050 - DEPRECATED_CLI_SETTINGS
當透過參數 (例如 --cache-folder
) 將選項傳遞給 CLI 命令時,會觸發此錯誤。
從 v2 開始,不再支援此功能。原因在於我們已將所有組態整併至單一儲存區,可從 yarnrc 檔案中定義。這可確保所有命令都在相同環境中執行 (先前則取決於您是否在所有命令或僅在安裝中使用 --cache-folder
)。CLI 選項現在僅用於控制特定命令的一次性行為 (例如 --verbose
)。
特別提醒 Netlify 使用者:Netlify 目前自動傳遞 --cache-folder
選項給 Yarn,而且您無法停用它。因此,當我們偵測到 Yarn 在 Netlify 上執行時,我們決定將其設為警告,而非錯誤 (我們仍會忽略該標記)。我們建議您在他們的儲存庫中按讚相關議題,因為我們可能會在未來的主要版本中移除此特例。
YN0059 - INVALID_RANGE_PEER_DEPENDENCY
套件要求同儕相依性,但提供的範圍不是有效的 semver 範圍。無法確保提供的套件符合同儕相依性要求。必須修正範圍才能消除警告。這不會妨礙解析,但可能會使系統處於不正確的狀態。
YN0060 - INCOMPATIBLE_PEER_DEPENDENCY
套件要求同儕相依性,但其在相依性樹中的父層提供了一個版本,不符合同儕相依性的範圍。應變更父層以提供有效的版本,或更新同儕相依性範圍。這不會妨礙解析,但可能會使系統處於不正確的狀態。
YN0061 - DEPRECATED_PACKAGE
套件已被發佈者標記為已棄用。避免使用它,請改用棄用訊息中提供的替代方案。
YN0062 - INCOMPATIBLE_OS
已移除:已由
INCOMPATIBLE_ARCHITECTURE
取代。
YN0063 - INCOMPATIBLE_CPU
已移除:已由
INCOMPATIBLE_ARCHITECTURE
取代。
YN0068 - UNUSED_PACKAGE_EXTENSION
Yarn 偵測到 packageExtension 未使用,這表示選擇器與任何已安裝的套件都不相符。
YN0069 - REDUNDANT_PACKAGE_EXTENSION
Yarn 偵測到不需要的 packageExtension,表示選取的套件在有或沒有擴充元件的情況下,行為相同。
YN0071 - NM_CANT_INSTALL_EXTERNAL_SOFT_LINK
無法安裝外部軟連結 (入口網站),因為父套件中存在不相容的相依性版本。這會阻止 node_modules 安裝的入口網站表示,而不需要將檔案寫入入口網站的目標目錄,這基於安全原因而禁止。
解決方法如果衝突相依性的範圍在入口網站目標和入口網站父項之間重疊,解決方法是使用 yarn dedupe foo
(其中 foo
是衝突相依性的名稱) 將衝突相依性升級到最高可用版本,如果 yarn dedupe
在沒有參數的情況下使用,專案中的所有相依性都將升級到 package.json
中範圍內的最高版本。另一個替代方案是使用 link:
協定,而不是 portal:
,並明確安裝目標目錄內的相依性。
YN0072 - NM_PRESERVE_SYMLINKS_REQUIRED
專案中使用了具有次相依性的入口網站相依性。必須使用 --preserve-symlinks
Node 選項才能啟動應用程式,讓入口網站相依性找到其次相依性和對等相依性。
YN0074 - NM_HARDLINKS_MODE_DOWNGRADED
nmMode
已降級為 hardlinks-local
,因為全域快取和安裝資料夾位於不同的裝置上。如果您希望 hardlinks-global
生效,請考慮變更 globalFolder
設定,並將全域快取放置在與專案相同的裝置上。
YN0075 - PROLOG_INSTANTIATION_ERROR
當 Prolog 謂詞以無效簽章呼叫時,會出現此錯誤。具體來說,表示某些謂詞參數未實例化(即沒有定義值),而謂詞預期有某些值。這並不表示您需要硬編碼值,而是在呼叫謂詞之前需要指派一個值。對於大多數 Yarn 謂詞的 WorkspaceCwd
參數,表示您需要使用 workspace/1
謂詞讓 Prolog 在 workspace_field/3
中使用 WorkspaceCwd
參數之前「填入」該參數,而不是呼叫
workspace_field(WorkspaceCwd, 'name', _).
您也可以使用 workspace/1
謂詞讓 Prolog 在 workspace_field/3
中使用之前「填入」WorkspaceCwd
參數
workspace(WorkspaceCwd), workspace_field(WorkspaceCwd, 'name', _).
如需瞭解在呼叫錯誤訊息所報告的謂詞時必須實例化的參數,請參閱我們的文件中的專用頁面。
YN0076 - INCOMPATIBLE_ARCHITECTURE
套件在其清單中(透過 os
/ cpu
/ libc
欄位)指定為與系統架構不相容。它不會被擷取、連結,而且其安裝後指令碼不會在此系統上執行。
YN0077 - GHOST_ARCHITECTURE
如果某些原生套件發出訊號表示不支援專案預期的系統,則可能會從安裝中排除這些套件。此偵測通常根據您目前的系統參數,但可以使用 supportedArchitectures
設定選項 進行設定。如果此清單中沒有您的作業系統或 CPU,Yarn 會略過這些套件並提出警告。
請注意,supportedArchitectures
中的所有欄位預設為 current
,這是一個根據您當地參數而定的動態值。例如,如果您希望支援「我的目前作業系統,無論是什麼,加上 Linux」,您可以將 supportedArchitectures.os
設定為 ["current", "linux"]
。
YN0078 - RESOLUTION_MISMATCH
從 Yarn 4 開始,Yarn 會在 CI 中自動啟用 --check-resolutions
旗標,當偵測到目前的環境是拉取要求時。在此模式下,Yarn 會檢查鎖定檔解析是否與初始範圍一致。例如,給定 foo@npm:^1.0.0
的初始依賴關係
foo@npm:1.2.0
是有效的解析foo@npm:2.0.0
不是有效的解析,因為它與預期的 semver 範圍不符bar@npm:1.2.0
也不是有效的解析,因為名稱不符
在正常情況下,此錯誤絕不會觸發,因為 Yarn 應該會根據依賴關係產生令人滿意的解析。如果您仍然遇到此錯誤,可能是以下兩者之一
-
Yarn 有錯誤。這可能會發生!檢閱不匹配以確保,如果您有疑問,請在 Discord 上 ping 我們,我們會告訴您是否需要擔心(在這樣做之前,請快速瀏覽我們的 儲存庫問題,以防有人報告相同的行為)。
-
或者,您可能有人在鎖定檔上執行奇怪的操作。這可能是一個錯誤(例如,有人手動修改鎖定檔進行偵錯,但忘記還原變更),或是一個問題(例如,惡意使用者嘗試執行某種 供應鏈攻擊)。
如果使用案例看起來合法(例如,如果錯誤來自 Yarn),您可以透過在
命令中新增 yarn install
--no-check-resolutions
旗標來略過公關檢查。但請小心:這是一個安全功能;停用它可能會造成後果。
YN0080 - NETWORK_DISABLED
enableNetwork
旗標設為 false
,防止提出任何要求。
請注意,Yarn 設定允許 enableNetwork
透過 npmRegistries
在每個儲存庫的基礎上設定。
YN0081 - NETWORK_UNSAFE_HTTP
Yarn 預設會拒絕執行 http(非 https)查詢,以保護您免於意外的中間人攻擊。
若要繞過此保護,請將指定的 hostname 加入 unsafeHttpWhitelist
。
YN0082 - RESOLUTION_FAILED
Yarn 無法找到符合要求範圍的套件版本。這通常發生在 semver 範圍鎖定尚未發布的版本(例如,最新版本為 0.9.0
時的 ^1.0.0
),但也有可能是其他原因造成的
-
登錄檔可能未正確設定(因此 Yarn 查詢的是公共 npm 登錄檔,而不是您的內部登錄檔)
-
版本可能已取消發布(儘管這不應該發生在公共登錄檔中)
YN0083 - AUTOMERGE_GIT_ERROR
在自動修正合併衝突時,Yarn 需要知道必須合併的兩個鎖定檔版本。為此,它將執行 git rev-parse MERGE_HEAD HEAD
和/或 git rev-parse REBASE_HEAD HEAD
,具體取決於情況。如果這兩個命令都失敗,則合併無法成功。
如果有人在未先解決合併衝突的情況下意外提交了鎖定檔,則可能會發生這種情況 - 如果發生這種情況,您需要將鎖定檔還原到較早的工作版本並執行 yarn install
。
YN0085 - UPDATED_RESOLUTION_RECORD
當鎖定檔項目從專案中新增或移除時,會印出此訊息。
YN0086 - EXPLAIN_PEER_DEPENDENCIES_CTA
對等相依性有點複雜,而除錯它們可能需要許多資訊。由於 Yarn 盡力將訊息維持在一行,我們提供一個 yarn explain peer-requirements
命令,它會比我們在一般安裝中顯示的更詳細。
要使用它,只需傳遞原始對等解析錯誤訊息中提供的以 p
為前綴的程式碼
YN0087 - MIGRATION_SUCCESS
從一個主要版本遷移至下一個主要版本時,某些預設值可能會變更。如果是這樣,Yarn 將嘗試暫時保留舊預設值,方法是在組態設定中固定它們的值。
若要查看此訊息出現時套用的確切變更,請查看 .yarnrc.yml
檔案的內容,以及儲存庫簽出中可能顯示已修改的任何其他檔案。
YN0088 - VERSION_NOTICE
在本地電腦上,Yarn 會定期檢查是否有新版本可用。如果有,將列印一次資訊訊息,然後在隔天之前不顯示訊息。
如果您不希望升級,您不必升級 - 但通常建議保持 Yarn 為最新版本,因為它們往往會帶來大量的效能改善、錯誤修正和新功能。
YN0089 - TIPS_NOTICE
我們的研究顯示,即使是我們的電力使用者,也不總是知道 Yarn 中一些較不顯眼的特色。為了改善可發現性,在本地機器上,Yarn 每天會顯示一個提示,說明其中包含的一些精華。或許其中一個提示將來有助於您改善您的基礎架構?
YN0090 - OFFLINE_MODE_ENABLED
啟用時,enableOfflineMode
標記會指示 Yarn 忽略遠端登錄,並僅從其內部快取中提取資料。在網路受限的環境(例如飛機或火車)中工作時,這是一個便利的模式。
若要離開離線工作模式,請檢查它是如何透過執行 yarn config --why
來啟用的。如果為 <environment>
,請在您的終端機中執行 unset YARN_ENABLE_OFFLINE_MODE
。否則,請從相關的 .yarnrc.yml
檔案中移除 enableOfflineMode
標記。