Angular起步篇

1:環(huán)境搭建

今天給大家介紹4種環(huán)境搭建的方法。

一:Angular-cli的安裝

官方指導(dǎo)文檔www.angular.cn/guide/quickstart

請使用cnpm來安裝,或者配置淘寶鏡像。
使用原生npm安裝可能會遇到的問題:

  1. 需要python的環(huán)境
  2. 可能會依賴某些franework導(dǎo)致會要求安裝Visual Studio(在下文中會為大家介紹webstrom的配置)
  3. node-sass // 因為ZF導(dǎo)致,被墻掉了。
  4. node-gyp模塊可能會編譯錯誤。

如果還遇到問題可以參考http://blog.csdn.net/zhy13087344578/article/details/60745667

二:Angular-seed

Angular的種子文件,他有很多的版本,我們今天通過官方的seed來安裝。

官方的angular-seed地址https://github.com/angular/angular2-seed

步驟:

  1. git clone https://github.com/angular/angular2-seed.git安裝種子文件(沒有g(shù)it的,可以自己down zip下來,然后打開cmd,執(zhí)行cnpm install)。

前置需安裝的包文件

  1. npm install -g webpack webpack-dev-server typescript
  2. npm install
  3. npm start
  4. 訪問本地 localhost:3000

seed文件的優(yōu)點:

  1. 自帶簡單的路由
  2. 自帶From模塊
  3. 帶有Http請求模塊
  4. 體現(xiàn)出了Angular的核心功能
  5. 項目體量小
三:基于webpack安裝(爽歪歪的方法)
手動創(chuàng)建項目(真正的勇士)
  • 條件:大神級別的使用方法(我不是大神,會簡單的介紹一下)
  • 優(yōu)點:想要什么在項目中添加什么,非常快捷
  • 步驟:
  1. 準(zhǔn)備工作:

在開始搭建Angular環(huán)境前,還需要做一些準(zhǔn)備工作,包括安裝Angular所依賴的基礎(chǔ)環(huán)境Node.js,可以在官網(wǎng)(https://nodejs.org/en/download/)下載安裝,需要確認(rèn)Node.js版本為v4.x.x以上,npm版本為v3.x.x以上。使用版本為node v5.11.0版本。

  1. 搭建步驟

1: 創(chuàng)建package.json

{
    "name": "HelloByHand",
    "version": "1.0.0",
    "license": "MIT",
    "scripts": {
        "start": "npm run server",
        "server": "webpack-dev-server –inline –colors –progress –port 3000"
    },
    "dependencies": {
        "@angular/common": "2.0.0",
        "@angular/compiler": "2.0.0",
        "@angular/core": "2.0.0",
        "@angular/platform-browser": "2.0.0",
        "@angular/platform-browser-dynamic": "2.0.0",
        "reflect-metadata": "~0.1.8",
        "core-js": "~2.4.1",
        "rxjs": "5.0.0-beta.12",
        "zone.js": "~0.6.26"
    },
    "devDependencies": {
        "@types/core-js": "~0.9.34",
        "ts-loader": "~1.2.0",
        "webpack": "~1.12.9",
        "webpack-dev-server": "~1.14.0",
        "typescript": "~2.0.0"
    }
}

2:創(chuàng)建tsconfig.json
配置了typescript編譯器的編譯參數(shù)。

{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "sourceMap": true,
        "declaration": false,
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments":false,
        "noImplicitAny": true,
        "suppressExcessPropertyErrors": true,
        "typeRoots": [
            "node_modules/@types"
        ],
        "exclude": [
            "node_modules"
        ]
     }
}

3:創(chuàng)建資源文件夾
在項目根目錄下創(chuàng)建一個src文件夾

4:創(chuàng)建組件相關(guān)文件
在src目錄下創(chuàng)建app.component.ts文件以及模板文件app.component.html,示例代碼如下:

//app.component.ts
import { Component } from '@angular/core';
@Component({
    selector: 'hello-world',
    templateUrl: 'scr/app.component.ts'
})
export class AppComponent {}  


//app.component.html
<h1>Hello World</h1>

5:創(chuàng)建app.module.ts文件
在Angular應(yīng)用中需要用模塊來組織一些功能緊密相關(guān)的代碼塊,每個應(yīng)用至少有一個模塊,習(xí)慣上把它叫做AppModule。在src目錄下創(chuàng)建一個app.module.ts文件來定義AppModule,代碼如下:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule
    ],
    providers: [],
    bootstrap: [AppComponent]
})
export class AppModule { }

6: 添加main.ts文件
Angular項目一般有一個入口文件,通過這個文件來串聯(lián)起整個項目。示例代碼如下:

//main.ts
import 'reflect-metadata';
import 'zone.js';
import { platforBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platforBrowserDynamic().bootstrapModule(AppModule).catch(err => console.log(err));

7:創(chuàng)建index.html宿主頁面

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>MyApp</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root>加載中....</app-root>
  <script src="bundle.js"></script>
</body>
</html>

8:創(chuàng)建webpack.config.js

//webpack.config.js
var webpack = require('webpack');
var path = require('path');

module.exports = {
    entry: './scr/main.js'
    output: {
        filename: './bundle.js'
    },
    resolve: {
        root: [path.join(__dirname, 'scr')],
        extensions: ['', '.ts', '.js']
    },
    module: {
        loaders: [
            { test: /\.ts$/, loader: 'ts-loader' }
        ]
    }
}
  • 重點:一個Angular項目必須要有一個模塊和一個組件。

2:詳細(xì)介紹Angular-cli命令行工具

官方文檔https://github.com/angular/angular-cli/wiki

創(chuàng)建項目和組件:

  • ng new (創(chuàng)建angular項目)
  • ng generate (創(chuàng)建項目中的組件等內(nèi)容)
    具體操作如下圖:


    1505046247(1).png
  • 啟動服務(wù):

    • ng serve --open (--open是在瀏覽器中打開的意思)
  • 測試和打包

    • ng test
    • ng build

特點跟特性:借助了 Amber Cli (負(fù)責(zé):項目構(gòu)建、項目的組織架構(gòu)等) / WebPack(負(fù)責(zé):調(diào)試、打包、測試)

3: Angular文件結(jié)構(gòu)分析

以Angular-cli創(chuàng)建的項目目錄為基礎(chǔ)。

  1. e2e 文件端對端測試
  2. src 我們主要的開發(fā)代碼的存放位置
  3. angular-cli.json angular-cli配置
  4. karma.config.js 單元測試文件
  5. package.json npm包管理配置
  6. Protractor.conf.js 這也是測試的相關(guān)文件
  7. README.md 有我們的cli說明
  8. Tsconfig.json 我們的Typescript配置
  9. Tslint.json 是我們Typescipt代碼格式校驗文件

src 目錄下結(jié)構(gòu)

  1. app 根模塊、根組件
  2. assets 放圖片、字體文件等等
  3. environments 配置環(huán)境。生成環(huán)境、開發(fā)環(huán)境、測試環(huán)境
  4. index.html 單應(yīng)用的唯一頁面
  5. main.ts 整個項目的入口腳本
  6. polyfills.ts 兼容老版本的瀏覽器
  7. styles.css 全局樣式配置
  8. test.ts 測試用例的ts

4:源碼的位置分析

  • @angular/core 存放核心代碼,如變化監(jiān)測機制、依賴注入機制、渲染等,核心功能的實現(xiàn),裝飾器也會存放在這個模塊。
  • @angular/common 存放一些常用的內(nèi)置指令和內(nèi)置管道等。
  • @angular/froms 存放表單相關(guān)內(nèi)置組件與指令。
  • @angular/http 存放網(wǎng)絡(luò)請求相關(guān)的服務(wù)等。
  • @angular/router 存放路由相關(guān)
  • @angular/platform-<X> 存放引導(dǎo)啟動相關(guān)工具。

5:WebStrom配置Angular

  1. 選擇File -> settings -> Languages & Frameworks -> Javascript,選擇編譯方式為ECMAScript 6。
  2. 選擇File -> settings -> Languages & Frameworks -> Javascript->Libraries ->右側(cè)面板選擇 Add ->在彈出框中選擇綠色加號,再選擇目錄 ->在彈出的窗口中選擇當(dāng)前項目下的node_modules 文件夾 ->一路ok和apply。等待IDE加載完畢即可。

6: Bootstrap等插件的安裝使用

我們使用bootstrap的樣式,在控制層方面(bootstrap涉及到j(luò)s的地方)我們使用ngx-bootstrap。

官方地址:http://valor-software.com/ngx-bootstrap/#/涉及到j(luò)avascript操作的部分在這個鏈接里找解決方案。

AngularCli項目集成Bootstrap步驟:

  1. npm install ngx-bootstrap bootstrap –save
  2. 在項目目錄下的 .angular-cli.json中的“styles”參數(shù)中添加:
    "../node_modules/bootstrap/dist/css/bootstrap.min.css"
  3. 重啟項目就可以直接使用bootstrap的樣式了,例如form-group,btn…

7:啟動過程詳解

需要掌握的內(nèi)容:

  1. 啟動時加載哪兒頁面。(index.html)
  2. 啟動時加載哪個腳本。(main.ts)
  3. 啟動時做了什么事情。

第三個問題要從main.ts來分析重點:

  1. 在main.ts中platformBrowserDynamic是動態(tài)引導(dǎo)項目加載。會把項目指引到AppModule中去。
  2. AppModule中的bootstrap元數(shù)據(jù),會指定模塊的根組件也就是app.component.ts
  3. 根組件暴露出select選擇器為app-root。而index.html中加載了<app-root></app-root>標(biāo)簽。從而實現(xiàn)了頁面的顯示
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容