2014-07-08 32 views
2

Pub Pub Package Manager提供了一種全局安裝包的方法嗎?如何在全球範圍內安裝Dart包?

我已經有一段使Node.js開發人員,我想知道是否有一個pub相當於npm install -g <package_name>

如果在全球範圍內安裝軟件包的方式,有沒有登記的二進制腳本方式,也可以像安裝shell命令一樣被安裝。

回答

4

依賴

所有酒館包裹在全球範圍內安裝(以下~/.pub-cache/適用於Mac/Linux的AppData\Roaming\Pub\Cache在Windows中,每個包的版本一個唯一的子目錄),然後只鏈接到你的項目添加在pubspec.yaml的依賴。

實際上~/pub-cache對於整個系統來說只是全局用戶而不是全局用戶。我不知道npm,但我認爲npm install -g將它安裝到系統的全局。在Dart中沒有類似的東西,但是您不用在Dart中安裝任何軟件包。當您在不同的軟件包中使用相同版本的Pub軟件包時,它只會在驅動器上保存一次。

全球包可執行

包含可執行腳本可以是全局的軟件包(每個用戶)使用pub global activate ...激活。如果添加了~/.pub-cache/bin/目錄到您的路徑,你可以只通過他們的名字(如tuneuptuneup包)或運行這些可執行飛鏢腳本pub global run packagename:scriptName(如pub global run tuneup:tuneup)如果腳本和包的名稱是一樣的,你可以省略:scriptName部分。

本地包可執行文件

您可以從您當前項目的依賴與pub run packageName:scriptName也運行腳本(如pub run test運行單元測試)的支持二進制腳本的全球

+1

安裝軟件包允許的工具創作或實用程序(如代碼生成器,短消息等),並仍然使用'pub'的便利性和一致性。這是我非常喜歡的'npm'(甚至是rubygems)的特性之一。如果本地版本存在,Pub仍然可以使用全局版本的本地版本(本地應用程序)。 – codematix

+1

我也相信,你所指的錯誤報告是 - [問題7874](https://code.google.com/p/dart/issues/detail?id=7874) – codematix

+0

太棒了,正是我所尋找的!非常感謝! – codematix