- Angular2
环境准备:
安装 Node.js and npm
Prerequisite: Install Node.js and npm
如果你的机器上还没有 Node.js 和 npm , 安装它们 。 我们的例子需要 node v5.x.x 或更高版本以及 npm 3.x.x 或更高版本。 要检查你正在使用的版本,请在终端窗口中运行 node -v 和 npm -v 命令。创建并配置本项目
创建项目目录12mkdir angular-quickstartcd angular-quickstart
创建配置文件
package.json
12345678910111213141516171819202122232425262728293031323334353637383940{"name": "angular-quickstart","version": "1.0.0","scripts": {"start": "tsc && concurrently \"tsc -w\" \"lite-server\" ","lite": "lite-server","tsc": "tsc","tsc:w": "tsc -w"},"licenses": [{"type": "MIT","url": "https://github.com/angular/angular.io/blob/master/LICENSE"}],"dependencies": {"@angular/common": "~2.1.1","@angular/compiler": "~2.1.1","@angular/core": "~2.1.1","@angular/forms": "~2.1.1","@angular/http": "~2.1.1","@angular/platform-browser": "~2.1.1","@angular/platform-browser-dynamic": "~2.1.1","@angular/router": "~3.1.1","@angular/upgrade": "~2.1.1","angular-in-memory-web-api": "~0.1.13","core-js": "^2.4.1","reflect-metadata": "^0.1.8","rxjs": "5.0.0-beta.12","systemjs": "0.19.39","zone.js": "^0.6.25"},"devDependencies": {"@types/core-js": "^0.9.34","@types/node": "^6.0.45","concurrently": "^3.0.0","lite-server": "^2.2.2","typescript": "^2.0.3"}}tsconfig.json
123456789101112{"compilerOptions": {"target": "es5","module": "commonjs","moduleResolution": "node","sourceMap": true,"emitDecoratorMetadata": true,"experimentalDecorators": true,"removeComments": false,"noImplicitAny": false}}systemjs.config.js
12345678910111213141516171819202122232425262728293031323334353637383940/*** System configuration for Angular samples* Adjust as necessary for your application needs.*/(function (global) {System.config({paths: {// paths serve as alias'npm:': 'node_modules/'},// map tells the System loader where to look for thingsmap: {// our app is within the app folderapp: 'app',// angular bundles''npm: /core/bundles/core.umd.js',/core':''npm: /common/bundles/common.umd.js',/common':''npm: /compiler/bundles/compiler.umd.js',/compiler':''npm: /platform-browser/bundles/platform-browser.umd.js',/platform-browser':''npm: /platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',/platform-browser-dynamic':''npm: /http/bundles/http.umd.js',/http':''npm: /router/bundles/router.umd.js',/router':''npm: /forms/bundles/forms.umd.js',/forms':''npm: /upgrade/bundles/upgrade.umd.js',/upgrade':// other libraries'rxjs': 'npm:rxjs','angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'},// packages tells the System loader how to load when no filename and/or no extensionpackages: {app: {main: './main.js',defaultExtension: 'js'},rxjs: {defaultExtension: 'js'}}});})(this);
安装依赖包
|
|
之后显示如下目录结构:
angular-quickstart
|-node_modules …
|-package.json
|-systemjs.config.js
|-tsconfig.json
创建应用
|
|
创建根模块文件
- app/app.module.ts123456789import { NgModule } from '@angular/core';import { BrowserModule } from '@angular/platform-browser';import { AppComponent } from './app.component';@NgModule({imports: [ BrowserModule ],declarations: [ AppComponent ],bootstrap: [ AppComponent ]})export class AppModule { }
创建组件并添加到应用中
- app/app.component.ts123456import { Component } from '@angular/core';@Component({selector: 'my-app',template: '<h1>My First Angular App</h1>'})export class AppComponent { }
创建启动文件
- app/main.ts1234import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';import { AppModule } from './app.module';const platform = platformBrowserDynamic();platform.bootstrapModule(AppModule);
ps:为什么要分别创建 main.ts 、应用模块 和应用组件的文件呢?
应用的引导过程与 创建模块或者 展现视图是相互独立的关注点。如果该组件不会试图运行整个应用,那么测试它就会更容易。
引导过程是与平台有关的
但我们应该用正确的方式组织 Angular 应用的文件结构。 启动 App 与展现视图是两个相互分离的关注点。 把这些关注点混在一起会增加不必要的难度。
可以通过使用不同的引导器 (bootstraper) 来在不同的环境中启动 AppComponent 。 测试组件也变得更容易,因为不需要再运行整个程序才能跑测试。
让我们多花一点精力来用 “正确的方式” 实现它。
定义该应用的宿主页面
- 在project root目录下创建index.html1234567891011121314151617181920212223<html><head><title>Angular QuickStart</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="styles.css"><!-- 1. Load libraries --><!-- Polyfill(s) for older browsers --><script src="node_modules/core-js/client/shim.min.js"></script><script src="node_modules/zone.js/dist/zone.js"></script><script src="node_modules/reflect-metadata/Reflect.js"></script><script src="node_modules/systemjs/dist/system.src.js"></script><!-- 2. Configure SystemJS --><script src="systemjs.config.js"></script><script>System.import('app').catch(function(err){ console.error(err); });</script></head><!-- 3. Display the application --><body><my-app>Loading...</my-app></body></html>
添加样式
- 在project root目录下创建styles.css 文件1234567891011121314/* Master Styles */h1 {color: #369;font-family: Arial, Helvetica, sans-serif;font-size: 250%;}h2, h3 {color: #444;font-family: Arial, Helvetica, sans-serif;font-weight: lighter;}body {margin: 2em;}
编译并运行应用程序
|
|
稍后,一个浏览器页标签就会打开并显示出来。
My First Angular App
好了,到这里,我们的第一个最简单的angular2 app就完成了。开启你的angular2旅程吧!