在這步中,你將使用 _pub build_ 來生成 App 的資源并將他們放入一個名為 _build_ 的新目錄中。除了其它任務之外,構建過程中還會生成最精簡的 JavaScript 代碼,這些代碼可以在現在任何主流的瀏覽器中運行。
需要注意的是 _one-hour-codelab_ 目錄包含幾個目錄,分別對應每個步驟,他們都被當做 one-hour-codelab 應用的一部分。構建過程為每個目錄生成了資源。每個目錄都可以被單獨部署。
## 檢出 pubspec.yaml
右擊打開 _pubspec.yaml_。單擊編輯窗口底部的 **Source** 標簽。
name: avast_ye_pirates
description: Write a Dart web app code lab
dependencies:
browser: any
### 關鍵信息
- 目錄中的 _pubspec.yaml_ 文件標識了這個目錄和其中的內容是一個應用。
- _pubspec.yaml_ 提供了應用的元信息,例如它的名字。
- _pubspec.yaml_ 同時也列出了應用所依賴的庫。 這個 App 需要的 _browser_ 庫被托管在了 _pub.dartlang.org_ 上面,同時還托管了許多其它的庫。
- _any_ 代表選擇符合你SDK的最新的軟件包。
## 查看包目錄
在 Dart 編輯器中,展開 _1-blankbadge_ 下的 _packages_ 目錄。

**圖片 8.1** pic1
### 關鍵信息
- _packages_ 目錄包含了 _pubspec.yaml_ 文件中列出的所有依賴的代碼。他們是 Dart 編輯器自動安裝的。
- _browser_ 包包含了檢查本地 Dart 支持的 _dart.js_ 腳本。
- 為了能讓應用成功部署,這些包必須包含在構建的應用中。
## 運行 Pub 構建
選擇 _pubspec.yaml_,然后選擇 **Tools > Pub Build - Minified,將會構建 _one-hour-codelab_ 目錄下的所有東西。輸入內容類似如下:
Loading source assets...
Building avast_ye_pirates...
[Info from Dart2JS]:
Compiling avast_ye_pirates|web/piratebadge.dart...
[Info from Dart2JS]:
Took 0:00:08.671410 to compile avast_ye_pirates|web/piratebadge.dart.
Built 6 files to "build".
### 關鍵信息
- _pub build_ 命令創建了一個 _build_ 目錄
- 你可以選擇 **Pub Build - Minified** 或者 **Pub Build - Debug**。 當構建一個最精簡的 JavaScript 時,所有空格和無關的字符都會被移動,創建一個更緊湊的文件,但它的可讀性更低。
- _build_ 目錄包含了部署項目所需要的一切東西。
## 查看 build 目錄
在你工作的 _1-blankbadge_ 目錄下,展開 _build_ 目錄,然后展開 _web_ 目錄。

**圖片 8.2** pic2
### 關鍵信息
- _build/web_ 包含了 App 單獨部署所需的所有文件。
- _piratebadge.dart.js_ 是一個精簡的 JavaScript 文件。 當部署時,這個文件會運行在瀏覽器中。
## 運行 App
### 關鍵信息
- App 運行在本機上。如果你想共享給他人,你需要將你的 App 部署到主機上。