運(yùn)行 build_runner
需要將你的 Dart SDK 升級到 2.0 版本以上颠焦。
如果你有使用 build_runner
方面的問題,請參閱下面的 故障排除 章節(jié)坞淮。
將 build_runner
作為開發(fā)服務(wù)器使用
-
編輯 package 中的 pubspec.yaml 文件,添加
build_runner
和build_web_compilers
作為 dev dependencies:dev_dependencies: build_runner: ^2.0.0 build_web_compilers: ^3.0.0
-
拉取依賴:
pub get
-
啟動服務(wù)器
pub run build_runner serve
serve
命令運(yùn)行期間解恰,每次對文件的修改都會觸發(fā)重新構(gòu)建银室。
初次構(gòu)建耗時較長枕面,之后由于是增量構(gòu)建,所以會更快政钟。
創(chuàng)建輸出目錄
參數(shù) --output <directory name>
用于指定構(gòu)建的輸出路徑路克。該參數(shù)可配合 build
樟结、watch
和 serve
命令使用。路徑可以是一個本地路徑精算,也可以是遠(yuǎn)程服務(wù)器地址瓢宦。
如果要部分輸出,比如說只輸出 web
目錄灰羽,可以使用參數(shù) --output web:<directory name>
驮履。
其他 build_runner
命令
- build: 單獨(dú)運(yùn)行 build 命令。如果要輸出文件到源碼目錄下廉嚼,那么這個命令會非常有用玫镐。結(jié)合
--output <dirname>
可將源碼和生成的資源合并輸出。 - watch: 和
build
類似怠噪,不同的是它可以監(jiān)控文件的變化恐似。結(jié)合--output <dirname>
使用,可以保證合并輸出路徑下的資源是最新的舰绘。 - test: 創(chuàng)建輸出目錄蹂喻,同時運(yùn)行
pub run test
。這個命令需要使用build_test
作為 dev dependencies捂寿。
切換至 dart2js
缺省情況下 build_web_compilers
調(diào)用 dartdevc 進(jìn)行編譯口四。如果要切換到 dart2js,需要在運(yùn)行 pub run build_runner build
(或 serve
)時攜帶 --release
參數(shù)秦陋。如果要傳遞一些參數(shù)到 dart2js 的話,可以通過創(chuàng)建 build.yaml
文件來實現(xiàn)。
targets:
$default:
builders:
build_web_compilers:entrypoint:
options:
dart2js_args:
- --minify
- --fast-startup
故障排除
編譯時長診斷
參見 https://github.com/dart-lang/build/blob/master/docs/measuring_performance.md更卒。
沒有匹配的 build_runner 版本
-
確保你的 Dart SDK 版本為 2.0 以上。
dart --version
檢查項目依賴的 package 的 Dart SDK 版本上枕,確保也在 2.0 以上辨萍。
打開文件過多
如果提示 the directory listing failed due to too many open files锈玉,表示你的操作系統(tǒng)對此有限制拉背。詳情參閱https://github.com/dart-lang/build/issues/857