2014-03-13 72 views
2

我正在爲pub build編寫一個自定義轉換器。我想在調試變壓器時關閉dart文件的編譯爲js以節省時間。可能嗎?在酒吧編譯期間關閉dart2js

目前,我的簡化pubspec.yaml

name: my_proj 
dependencies: 
    polymer: any 
transformers: 
    - my_proj 

回答

1

沒有爲pub build只爲pub serve --no-dart2js別無選擇。

你可以臨時修改該文件

dart/sdk/lib/_internal/pub/lib/src/barback/build_environment.dart在你的鏢安裝目錄下,並設置useDart2JS爲「假」。

https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/sdk/lib/_internal/pub/lib/src/barback/build_environment.dart#56

我還沒有嘗試過看到自己,但我認爲這應該工作。

或排除的dart2js變壓器的web目錄中pubspec.yaml

transformers: 
- $dart2js: 
    $exclude: web 
+0

我還沒有發現在鏢目錄中的文件build_environment.dart ..我用鏢的最新的開發人員版在我的電腦上.. 我希望這個選項將可用對於在未來建立的酒吧.. – Roman

+1

我創建了這個問題https://code.google.com/p/dart/issues/detail?id=17484 – Roman

+1

發佈的Dart SDK似乎只在快照中編碼(即使用於調用pub的'pub'腳本引用了dart-sdk/lib/_internal/pub /這個路徑,該文件夾也不存在,要做到這一點,可能需要從源代碼構建SDK。不值得 麻煩。 –

3

答案從https://code.google.com/p/dart/issues/detail?id=17484#c4

> 首先,你的迭代循環過程中,應考慮使用「酒吧服務「而不是」酒吧建設「。它只會在需要時編譯dart2js輸出,因此您可以輕鬆測試Dart輸出,而無需等待無用的JS。不幸的是,它不會自動重新加載你的變壓器,但即使如此,它仍然應該更快。如果你真的想使用「pub build」,你可以用「--mode debug」運行它來生成JS,然後添加「{$ dart2js:{$ exclude:web}} 「作爲有效禁用dart2js的變壓器。

也看到文檔https://www.dartlang.org/tools/pub/assets-and-transformers.html#exclude-assets