目錄

dart pub upgrade

Upgradepub 工具的其中一個指令。

$ dart pub upgrade [options] [dependencies]

如同 dart pub getdart 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-versionsdart pub upgrade --tighten 將會更新所有工作區 pubspec.yaml 檔案中的約束。