dart pub downgrade
downgrade 是 pub 工具的命令之一。
$ dart pub downgrade [--[no-]offline] [-n|--dry-run] [dependencies...]不帶任何附加引數時,dart pub downgrade 會獲取當前工作目錄中 pubspec.yaml 檔案中列出的所有依賴項的最低版本,以及它們的傳遞性依賴項。例如:
dart pub downgrade
Resolving dependencies... (1.2s)
+ barback 0.13.0
+ collection 0.9.1
+ path 1.2.0
+ source_maps 0.9.0
+ source_span 1.0.0
+ stack_trace 0.9.1
Changed 6 dependencies!dart pub downgrade 命令會建立一個鎖定檔案(lockfile)。如果鎖定檔案已存在,pub 會忽略該檔案並從頭生成一個新檔案,使用所有依賴項的最低版本。
有關包解析和系統包快取的更多資訊,請參閱dart pub get 文件。
降級特定依賴項
#可以指示 dart pub downgrade 將特定依賴項降級到最低版本,同時儘可能保留其他依賴項不變。例如:
dart pub downgrade test
Resolving dependencies...
barback 0.15.2+2
bot 0.27.0+2
browser 0.10.0+2
chrome 0.6.5
collection 1.1.0
path 1.3.0
pool 1.0.1
source_span 1.0.2
< stack_trace 0.9.2 (was 1.1.1)
stagexl 0.10.2
< test 0.10.0 (was 0.11.4)
These packages are no longer being depended on:
- matcher 0.11.3
Changed 3 dependencies!如果您正在降級某個特定依賴項,pub 會嘗試查詢符合新依賴項約束條件的任何傳遞性依賴項的最高版本。通常,任何傳遞性依賴項也會因此而被降級。
獲取新的依賴項
#如果在執行 dart pub downgrade 之前向 pubspec 添加了依賴項,則會獲取新的依賴項及其任何傳遞性依賴項。這與 dart pub get 的行為相同。
移除依賴項
#如果在執行 dart pub downgrade 之前從 pubspec 中移除依賴項,則該依賴項將不再可供匯入。移除的依賴項的任何傳遞性依賴項也會被移除,前提是沒有剩餘的直接依賴項也依賴於它們。這與 dart pub get 的行為相同。
離線時降級
#如果您沒有網路連線,仍然可以執行 dart pub downgrade。由於 pub 會將包下載到系統上所有包共享的中心快取中,因此它通常可以在不需要使用網路的情況下找到先前下載的包。
然而,預設情況下,如果您有任何託管依賴項,dart pub downgrade 會嘗試聯網。如果您不希望 pub 這樣做,請傳遞 --offline 標誌。在離線模式下,pub 只會在本地包快取中查詢,嘗試從已有的內容中找到一套與您的包相容的版本。
選項
#有關適用於所有 pub 命令的選項,請參閱全域性選項。
--[no-]offline
#預設情況下,pub 會連線到網路以檢索托管包 (--no-offline)。要使用快取的包,請改用 --offline。有關詳細資訊,請參閱離線時獲取。
--dry-run 或 -n
#報告哪些依賴項會更改,但不實際更改任何依賴項。
--tighten
#更新 pubspec.yaml 中依賴項的下限以匹配已解析的版本,並返回已更改的約束列表。可以應用於特定依賴項。
在工作區中
#在Pub 工作區中,dart pub downgrade 將降級整個工作區的所有依賴項。