2013-12-21 62 views
3

我正在學習飛鏢及其依賴關係管理器pub,並且在這裏看到「穿過樹林的森林」的艱難時刻。通過dart2js進行飛鏢包管理

說我想在我的項目中使用Polymer.dart。所以,在我的項目的根,我創建了以下pubspec.yaml

name: test_dart 
description: A sample web application 
dependencies: 
    browser: any 
    polymer: ">=0.9.0 <0.10.0" 

我然後運行pub get,都到了pub回購和獲取我所指定的browserpolymer依賴。

MyDartProject/ 
    pubspec.yaml 
    myapp.dart 
    packages/ 
     browser/ 
      ... 
     ...all the packages that ship with Polymer 

現在我開始編碼我的飛鏢的web應用程序(myapp.dart),這將引用各種聚合物和browser類型/:然後,它在我的項目的根,這意味着現在我有一個項目,看起來像創建packages目錄功能/等。在其源代碼中。

當我全部完成時,我想創建一個名爲myapp.js的JavaScript文件。

按照dart2js docs,我需要運行類似:

dart2js --out=myapp.js --package-root=??? myapp.dart 

如何包括所有的構建路徑瀏覽器&聚合物包?

回答

4

有一個 「酒吧構建」 現在看到的選項。

http://pub.dartlang.org/doc/pub-build.html

使用酒館生成,當你準備部署你的Web應用程序。當您運行 pub構建時,它會爲當前包和所有依賴關係生成資產,並將它們放入名爲build的新目錄中。

$ cd ~/dart/helloworld 
$ pub build 
Building helloworld...... 
Built 5 files! 

如果構建目錄已經存在,酒館構建其刪除,然後重新創建它。

這應該做你在這裏後的一切。你也可以通過右鍵點擊pubspec.yaml文件從IDE啓動它並選擇「pub build」

編輯:你也應該看到zoechi的答案中的鏈接。

+0

謝謝@Paul Collingwood(+1) - 快速跟進。我在Dart編輯器中,並且在編輯器附帶的'sunflower'應用程序中作爲示例應用程序運行'Pub Build'。它在我的項目根目錄下創建了一個'build'目錄,其中包含幾個項目:'packages'目錄,'math.png','sunflower.css','sunflower.dart.js'和'sunflower.html'。 **我在網絡服務器上放置了什麼?**我是否需要將所有內容放在服務器上,還是可以放棄'packages'目錄? (或者''sunflower.dart.js'在'packages'中引用了編譯好的代碼,因此必須在服務器上運行)?再次感謝! – IAmYourFaja

+2

把所有內容都放在服務器上。它是獨立的。軟件包目錄中的內容仍然會被引用,所以你也需要這樣做。 –

1

如果您從MyDartProject目錄運行dart2js,則不必提供--package-root參數。

另一種方法是運行pub build。如果您使用Polymer,則需要添加transformers部分。

+0

令人敬畏的答案和鏈接@zoechi(+1) - 請參閱Paul Collingwood答案下的我的評論 - 我對你有同樣的問題! – IAmYourFaja

+0

也@zoechi什麼是*變形金剛*?!?我沒有看到它們列在['pubspec'規範](http://pub.dartlang.org/doc/pubspec.html)中。再次感謝! – IAmYourFaja

+1

變形金剛是可以在構建過程中集成的程序(您可以在Dart中編寫自己的程序並使用pubspec.yaml添加它)。聚合物變壓器完成聚合物特定部分的從Dart轉換到JS(不確定自己在這裏包括了哪些步驟)。 [sass](http://pub.dartlang.org/packages/sass)是啓動SASS將SASS源文件轉換爲CSS文件的另一個示例。 –