# QuickStart
# 快速上手
Good tools make application development quicker and easier to maintain than
if you did everything by hand.
好的工具能让开发更加简单快捷。
The [**Angular CLI**](https://cli.angular.io/) is a **_command line interface_** tool
that can create a project, add files, and perform a variety of ongoing development tasks such
as testing, bundling, and deployment.
[**Angular CLI**](https://cli.angular.io/)是一个**命令行界面**工具,它可以创建项目、添加文件以及执行一大堆开发任务,比如测试、打包和发布。
The goal in this guide is to build and run a simple Angular
application in TypeScript, using the Angular CLI
while adhering to the [Style Guide](guide/styleguide) recommendations that
benefit _every_ Angular project.
本章的目标是构建并运行一个超级简单的 TypeScript Angular 应用。使用 Angular CLI 来让*每个* Angular 应用从[风格指南](guide/styleguide)的那些建议中获益。
By the end of the chapter, you'll have a basic understanding of development with the CLI
and a foundation for both these documentation samples and for real world applications.
在本章的末尾,你会对用 CLI 进行开发有一个最基本的理解,并将其作为其它文档范例以及真实应用的基础。
And you can also download the example.
你还可以 下载这个例子。
Step 1. Set up the Development Environment
步骤 1. 设置开发环境
You need to set up your development environment before you can do anything.
在开始工作之前,你必须设置好开发环境。
Install **[Node.js® and npm](https://nodejs.org/en/download/)**
if they are not already on your machine.
如果你的电脑里没有 Node.js®和 npm,请安装**[它们](https://nodejs.org/en/download/)**。
**Verify that you are running at least Node.js version `8.x` or greater and npm version `5.x` or greater**
by running `node -v` and `npm -v` in a terminal/console window.
Older versions produce errors, but newer versions are fine.
请先在终端/控制台窗口中运行命令 `node -v` 和 `npm -v`,
**来验证一下你正在运行 node `8.x` 和 npm `5.x` 以上的版本。**
更老的版本可能会出现错误,更新的版本则没问题。
Then install the [Angular CLI](https://github.com/angular/angular-cli) globally.
然后全局安装 [Angular CLI](https://github.com/angular/angular-cli)。
npm install -g @angular/cli
Step 2. Create a new project
步骤 2. 创建新项目
Open a terminal window.
打开终端窗口。
Generate a new project and default app by running the following command:
运行下列命令来生成一个新项目以及默认的应用代码:
ng new my-app
The Angular CLI installs the necessary npm packages, creates the project files, and populates the project with a simple default app. This can take some time.
Angular CLI 会安装必要的 NPM 包、创建项目文件,并在该项目中生成一个简单的默认应用。这可能要花一点时间。
You can add pre-packaged functionality to a new project by using the `ng add` command. The `ng add` command transforms a project by applying the schematics in the specified package.
For more information, see the [Angular CLI documentation.](https://github.com/angular/angular-cli/wiki/add "Angular CLI documentation")
你可以使用 `ng add` 命令往新项目中添加一些预先打包好的功能。
`ng add` 命令会通过应用来自特定 NPM 包中的图纸(schematic)来转换此项目。
要了解更多,参见 [Angular CLI 文档](https://github.com/angular/angular-cli/wiki/add "Angular CLI documentation")。
Angular Material provides schematics for typical app layouts.
See the [Angular Material documentation](https://material.angular.io/guides "Angular Material documentation") for details.
比如 Angular Material 就为一些典型布局提供了图纸。参见 [Angular Material 文档](https://material.angular.io/guides "Angular Material documentation")。
Step 3: Serve the application
步骤 3. 启动开发服务器
Go to the project directory and launch the server.
进入项目目录,并启动服务器。
cd my-app
ng serve --open
The `ng serve` command launches the server, watches your files,
and rebuilds the app as you make changes to those files.
`ng serve` 命令会启动开发服务器,监听文件变化,并在修改这些文件时重新构建此应用。
Using the `--open` (or just `-o`) option will automatically open your browser
on `http://localhost:4200/`.
使用 `--open`(或 `-o`)参数可以自动打开浏览器并访问 `http://localhost:4200/`。
Your app greets you with a message:
本应用会用一条消息来跟你打招呼:
Step 4: Edit your first Angular component
步骤 4. 编辑你的第一个 Angular 组件
The CLI created the first Angular component for you.
This is the _root component_ and it is named `app-root`.
You can find it in `./src/app/app.component.ts`.
这个 CLI 为你创建了第一个 Angular 组件。
它就是名叫 `app-root` 的*根组件*。
你可以在 `./src/app/app.component.ts` 目录下找到它。
Open the component file and change the `title` property from `'app'` to `'My First Angular App!'`.
打开这个组件文件,并且把 `title` 属性从 `'app'` 改为 `'My First Angular App!'`:
The browser reloads automatically with the revised title. That's nice, but it could look better.
浏览器会自动刷新,并具有修改之后的标题。不错,不过它还可以更好看一点。
Open `src/app/app.component.css` and give the component some style.
打开 `src/app/app.component.css` 并给这个组件设置一些样式
Looking good!
漂亮!
## What's next?
## 接下来呢?
That's about all you'd expect to do in a "Hello, World" app.
这就是你期待这个 “Hello, World” 应用要做的。
You're ready to take the [Tour of Heroes Tutorial](tutorial) and build
a small application that demonstrates the great things you can build with Angular.
现在,你可以开始[英雄指南](tutorial)教程,通过构建一个小型应用来学习如何用 Angular 构建各种大型应用了。
Or you can stick around a bit longer to learn about the files in your brand new project.
或者,你也可以稍等一会儿,学学在这个新项目中的文件都是干什么用的。
## Project file review
## 项目文件概览
An Angular CLI project is the foundation for both quick experiments and enterprise solutions.
Angular CLI 项目是做快速试验和开发企业解决方案的基础。
The first file you should check out is `README.md`.
It has some basic information on how to use CLI commands.
Whenever you want to know more about how Angular CLI works make sure to visit
[the Angular CLI repository](https://github.com/angular/angular-cli) and
[Wiki](https://github.com/angular/angular-cli/wiki).
你首先要看的文件是 `README.md`。
它提供了一些如何使用 CLI 命令的基础信息。
如果你想了解 Angular CLI 的工作原理,请访问 [Angular CLI 的仓库](https://github.com/angular/angular-cli)及其
[Wiki](https://github.com/angular/angular-cli/wiki)。
Some of the generated files might be unfamiliar to you.
有些生成的文件你可能觉得陌生。
### The `src` folder
### `src` 文件夹
Your app lives in the `src` folder.
All Angular components, templates, styles, images, and anything else your app needs go here.
Any files outside of this folder are meant to support building your app.
你的应用代码位于 `src` 文件夹中。
所有的 Angular 组件、模板、样式、图片以及你的应用所需的任何东西都在那里。
这个文件夹之外的文件都是为构建应用提供支持用的。
src
app
app.component.css
app.component.html
app.component.spec.ts
app.component.ts
app.module.ts
assets
.gitkeep
environments
environment.prod.ts
environment.ts
browserslist
favicon.ico
index.html
karma.conf.js
main.ts
polyfills.ts
styles.css
test.ts
tsconfig.app.json
tsconfig.spec.json
tslint.json
File
文件
Purpose
用途
`app/app.component.{ts,html,css,spec.ts}`
Defines the `AppComponent` along with an HTML template, CSS stylesheet, and a unit test.
It is the **root** component of what will become a tree of nested components
as the application evolves.
使用 HTML 模板、CSS 样式和单元测试定义 `AppComponent` 组件。
它是**根**组件,随着应用的成长它会成为一棵组件树的根节点。
`app/app.module.ts`
Defines `AppModule`, the [root module](guide/bootstrapping "AppModule: the root module") that tells Angular how to assemble the application.
Right now it declares only the `AppComponent`.
Soon there will be more components to declare.
定义 `AppModule`,[根模块](guide/bootstrapping "AppModule: 根模块")为 Angular 描述如何组装应用。
目前,它只声明了 `AppComponent`。
不久,它将声明更多组件。
`assets/*`
A folder where you can put images and anything else to be copied wholesale
when you build your application.
这个文件夹下你可以放图片等任何东西,在构建应用时,它们全都会拷贝到发布包中。
`environments/*`
This folder contains one file for each of your destination environments,
each exporting simple configuration variables to use in your application.
The files are replaced on-the-fly when you build your app.
You might use a different API endpoint for development than you do for production
or maybe different analytics tokens.
You might even use some mock services.
Either way, the CLI has you covered.
这个文件夹中包括为各个目标环境准备的文件,它们导出了一些应用中要用到的配置变量。
这些文件会在构建应用时被替换。
比如你可能在生产环境中使用不同的 API 端点地址,或使用不同的统计 Token 参数。
甚至使用一些模拟服务。
所有这些,CLI 都替你考虑到了。
`browserslist`
A configuration file to share [target browsers](https://github.com/browserslist/browserslist) between different front-end tools.
一个配置文件,用来在不同的前端工具之间共享[目标浏览器](https://github.com/browserslist/browserslist)。
`favicon.ico`
Every site wants to look good on the bookmark bar.
Get started with your very own Angular icon.
每个网站都希望自己在书签栏中能好看一点。
请把它换成你自己的图标。
`index.html`
The main HTML page that is served when someone visits your site.
Most of the time you'll never need to edit it.
The CLI automatically adds all `js` and `css` files when building your app so you
never need to add any `