dart pub upgrade
Upgrade 是 pub 工具的其中一個指令。
$ dart pub upgrade [options] [dependencies]
如同 dart pub get
,dart pub upgrade
會取得相依性。不同之處在於 dart pub upgrade
會忽略任何現有的鎖定檔,讓 pub 可以取得所有相依性的最新版本。相關的指令是 dart pub outdated
,您可以執行此指令來找出過期的相依性。
在沒有任何額外引數的情況下,dart pub upgrade
會取得目前工作目錄中 pubspec.yaml
檔案中列出的所有相依性及其遞移相依性的最新版本。例如
$ dart pub upgrade
Dependencies upgraded!
當 dart pub upgrade
升級相依性版本時,它會寫入鎖定檔,以確保 dart pub get
會使用這些相依性的相同版本。對於應用程式套件,請將鎖定檔簽入原始碼控制;這可確保應用程式在所有開發人員和部署到生產環境時,都具有所有相依性的完全相同版本。對於一般的套件,請勿簽入鎖定檔,因為預期套件可與一系列的相依性版本搭配使用。
如果鎖定檔已存在,dart pub upgrade
會忽略它,並從頭開始產生新的鎖定檔,使用所有相依性的最新版本。
如需有關套件解析和系統套件快取的詳細資訊,請參閱dart pub get
文件。
升級特定的相依性
#您可以指示 dart pub upgrade
將特定的相依性升級至最新版本,同時讓其餘的相依性盡可能保持不變。例如
$ dart pub upgrade test args
Dependencies upgraded!
通常,不會升級其他相依性;它們會保持鎖定檔中鎖定的版本。但是,如果要求的升級導致與這些鎖定版本不相容,則會選擇性地解除鎖定,直到找到相容的版本組合為止。
這表示升級特定相依性預設不會升級其遞移相依性。
若要將特定相依性及其所有遞移相依性升級至最新版本,請使用 --unlock-transitive
旗標。
$ dart pub upgrade --unlock-transitive test args
取得新的相依性
#如果在執行 dart pub upgrade
之前將相依性新增至 pubspec,它會取得新的相依性及其任何遞移相依性。這與 dart pub get
具有相同的行為。
移除相依性
#如果在執行 dart pub upgrade
之前從 pubspec 中移除相依性,則不再能匯入該相依性。已移除相依性的任何遞移相依性也會一併移除,前提是沒有任何其餘的直接相依性也相依於它們。這與 dart pub get
的行為相同。
離線時升級
#如果您沒有網路存取權,仍然可以執行 dart pub upgrade
。因為 pub 會將套件下載到系統上所有套件共用的中央快取,因此它通常可以找到先前下載的套件,而無需使用網路。
但是,預設情況下,如果您有任何託管的相依性,dart pub upgrade
會嘗試連線到網際網路,讓 pub 可以偵測到較新版本的相依性。如果您不希望 pub 執行此操作,請傳遞 --offline
旗標。在離線模式下,pub 只會在您的本機套件快取中尋找,嘗試從已可用的內容中找到一組適用於您套件的版本。
請記住,pub 會產生鎖定檔。如果您快取中某個相依性的唯一版本碰巧是舊版本,則離線 dart pub upgrade
會將您的應用程式鎖定到該舊版本。下次您連線時,您可能會想再次執行 dart pub upgrade
以升級至較新的版本。
選項
#dart pub upgrade
指令支援dart pub get
選項,以及其他選項。如需適用於所有 pub 指令的選項,請參閱全域選項。
--[no-]offline
#預設情況下,pub 會連線到網路以擷取託管套件 (--no-offline
)。若要改為使用快取的套件,請使用 --offline
。如需詳細資訊,請參閱離線時取得。
--dry-run
或 -n
#報告將會變更的相依性,但不進行變更。如果您想在進行更新之前分析更新,這會很有用。
--[no-]precompile
#預設情況下,pub 會預先編譯直接相依性中的可執行檔 (--precompile
)。若要防止預先編譯,請使用 --no-precompile
。
--major-versions
#取得dart pub outdated
列為 可解析 的套件,並忽略 pubspec.yaml
檔案中的任何上限約束。也會使用新的約束更新 pubspec.yaml
。
若要檢查將會升級哪些相依性,您可以使用 dart pub upgrade --major-versions --dry-run
。
--tighten
#更新 pubspec.yaml
中相依性的下限,以符合解析的版本,並傳回已變更約束的清單。可應用於特定的相依性。
--unlock-transitive
#當與要解除鎖定的一系列套件搭配使用時,會先計算這些套件的相依性 (在目前的解析中) 的遞移閉包,然後解除鎖定所有這些套件。
在工作區中
#在 Pub 工作區中,dart pub upgrade
將會升級所有工作區套件中共享解析中的所有相依性。
dart pub upgrade --major-versions
和 dart pub upgrade --tighten
將會更新所有工作區 pubspec.yaml
檔案中的約束。
除非另有說明,本網站上的文件反映的是 Dart 3.6.0 版本。頁面最後更新時間為 2024-12-10。 檢視原始碼 或 回報問題。