最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單說說angular.json文件的使用

 更新時間:2018年10月29日 10:08:51   作者:oceania  
這篇文章主要介紹了簡單說說angular.json文件的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Angular CLI 6+的版本后,原先的angular-cli.json就被換成了angular.json,而其中里面的字段變化挺大了,如果不了解基本的組成,或者直接把老版本的代碼 copy 到新版本的工作空間中,會導(dǎo)致一些很不友好的錯誤。

這種變化主要還是因為Angular CLI引入了 monorepo (一個空間管理多個項目) 的開發(fā)模式,即使用ng new出來的相當(dāng)于一個大的工作空間,通過angular.json配置來管理各種ng generate application | library出來的項目或組件庫。

其實這種模式優(yōu)勢還是很明顯的,比如一個公司有多種管理平臺或者產(chǎn)品時,使用這種方式可以統(tǒng)一各個項目的環(huán)境,各個項目間共用的組件也被統(tǒng)一維護起來,所有項目共用npm包以及typescript配置。

monorepo下結(jié)構(gòu)如:

但是其實大多數(shù)人還是一個工作空間維護一個項目,所以這個在這里不那么重要,只是想說json文件的改變是為了新的模式而已。

Angular.json的部分字段

當(dāng)你ng new一個工作空間時,默認(rèn)會在根目錄創(chuàng)建一個項目以及對應(yīng)e2e項目。初始的angular.json結(jié)構(gòu)如下(省略的部分的配置代碼)

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "xxxx": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "app",
      "schematics": {},
      "architect": {}
    }
  },
  "defaultProject": "xxxx"
}

這是部分的配置屬性,我按照順序簡單做個記錄,以后也好查閱。

$schema

指向一個 JSON Schema 文件,這個文件描述了angular.json所有的字段以及約束。

其實可以比作一個有“類型提示”功能文件,只要支持了這個功能的 IDE 或編輯器,在書寫angular.json文件時便會給出相應(yīng)的提示。

version

設(shè)置版本

newProjectRoot

新建項目所在的路徑。

當(dāng)使用ng generate application | library創(chuàng)建一個新的項目時,會自動裝配到設(shè)定的newProjectRoot目錄下

projects

放置所有項目的配置。其中一個項目為一個子項,如xxxx為一個項目,在創(chuàng)建時自動生成。

{
  "projects": {
    "xxxx": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "app",
      "schematics": {},
      "architect": {}
    }
  }
}

在一個單獨的配置中,可以通過靈活的配置實現(xiàn)一些自動化操作還有使用CLI內(nèi)置的一些指令。

root

代表項目的“根目錄”,也就是項目所在的位置,或者說項目源碼的父級目錄。項目的根目錄包含了一些特定的配置。

sourceRoot

項目源碼所在的目錄,通常默認(rèn)使用src目錄。

projectType

標(biāo)示這個項目是application還是library

prefix

使用ng generate component | directive生成組件或者指令時默認(rèn)的selector前綴,通常我們使用命令創(chuàng)建的組件或指令都是app-xxx格式,我們可以手動在這里改動,使整個項目生效。

schematics

CLI中生成組件、指令、模塊等文件的指令是使用@angular-devkit/schematics實現(xiàn)的,這些指令通常帶有一些快捷配置,比如一個生成組件的命令:ng g c --spec=false --styleext=scss,這條命令可以直接生成一個 不帶測試文件、使用scss為樣式文件 的組件。如果每次都要手動輸入這些配置就會顯得麻煩,所以angular.json提供了schematics屬性來統(tǒng)一設(shè)置一些生成類的命令配置。

這里的schematics是針對單個project來的。整個angular.json也有此字段,默認(rèn)生效于所有project。

CLI預(yù)設(shè)了幾組選項,我們可以針對不同的選項進行配置:

  • @schematics/angular:component
  • @schematics/angular:class
  • @schematics/angular:directive
  • @schematics/angular:guard
  • @schematics/angular:module
  • @schematics/angular:pipe
  • @schematics/angular:service

component舉例,如果要實現(xiàn)統(tǒng)一ng g c --spec=false --styleext=scss的效果,可以配置如下:

{
  "schematics": {
    "@schematics/angular:component": {
       "styleext": "less",
       "spec": false
    }
  }
}

接著就可以直接使用ng g c直接生成對應(yīng)的組件了。

architect

包含幾組CLI相關(guān)的項目自動化命令配置,比如本地運行、編譯、測試等等。默認(rèn)預(yù)設(shè)了幾組命令配置如build、serve等等:

{
  "architect":{
    "build":{},
    "serve":{},
    "extract-i18n":{},
    "test":{},
    "lint":{}
  }
}

配置屬性

每一個配置項都有 3 個字段屬性:builder,options,configurations,例如默認(rèn)的build命令配置:

{
  "architect": {
    "build": {
      "builder": "@angular-devkit/build-angular:browser",
      "options": {
        "outputPath": "dist/testApp",
        "index": "src/index.html",
        "main": "src/main.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "src/tsconfig.app.json",
        "assets": [
          "src/favicon.ico",
          "src/assets"
        ],
        "styles": [
          "src/styles.css"
        ],
        "scripts": []
       },
       "configurations": {
         "production": {
           "fileReplacements": [
             {
               "replace": "src/environments/environment.ts",
               "with": "src/environments/environment.prod.ts"
             }
           ],
           "optimization": true,
           "outputHashing": "all",
           "sourceMap": false,
           "extractCss": true,
           "namedChunks": false,
           "aot": true,
           "extractLicenses": true,
           "vendorChunk": false,
           "buildOptimizer": true
         }
       }
     }
   }
}

這個是項目默認(rèn)生成的配置。

builder代表要執(zhí)行的內(nèi)置程序,因為CLI內(nèi)置了一些自動化工具,architect只是提供了一個facade模式(通俗地講,就是開發(fā)者不需要知道內(nèi)部的復(fù)雜實現(xiàn))給開發(fā)者配置使用,本質(zhì)上還是調(diào)用的內(nèi)置工具。

options代表針對當(dāng)前builder要配置的配置項,調(diào)用不同的內(nèi)置程序,是需要傳對應(yīng)的配置項的,由于配置項很多,這里也不會列出。

configurations代表這個命令的多種調(diào)用模式,在此配置里,我們可以定義不同的別名,然后使用不同的配置(配置的字段還是屬于options里的),最后在使用命令時便可以手動選擇不同的模式。

如何使用

CLI其實內(nèi)置了幾個快捷命令來對應(yīng)默認(rèn)生成的配置如ng serve、ng build等等,如果是我們額外自定義的配置,則可以使用ng run <project>:<architect>[:configurations] [其他配置]
命令來實現(xiàn),其中projectarchitect為必填,configurations為選填。

比如我們簡單額外自定義一個本地運行的服務(wù)器命令:

{
  "architect":{
    "myServe":{
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "xxxx:build",
        "port": 8800
      },
      "configurations": {
        "port1": {
          "port": 8801
        },
        "port2": {
          "port": 880
        }
      }
    }
  }
}

配置使用了內(nèi)置的運行本地服務(wù)器程序,然后使用默認(rèn)的build配置,加上自定義的運行端口,另外加上兩個不同模式,運行不同端口。

使用ng run xxxx:myServe可以正常運行本地服務(wù)器跑項目,端口是8800
使用ng run xxxx:myServe:port1端口是8801

當(dāng)然,我們還可以直接使用額外的命令行配置直接覆蓋已經(jīng)定義的配置:
ng run xxxx:myServe:port1 --port=8808

這里的例子只是為了簡單了解下architect的用法。

defaultProject

默認(rèn)項目,當(dāng)使用一些CLI命令沒有指定項目名稱時,默認(rèn)指向的項目。

schema.json

其實我只是為了記錄自己有點印象的屬性,整個angular.json還有很多其他的字段,如果想要全面了解,我們可以直接打開$schema所指向的文件,里面詳細地展示了各種字段的類型、配置以及描述說明。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解AngularJS 模塊化

    詳解AngularJS 模塊化

    本篇文章主要介紹了詳解AngularJS 模塊化,模塊用于單獨的邏輯表示服務(wù),控制器,應(yīng)用程序等,并保持代碼的整潔。有興趣的可以了解一下
    2017-06-06
  • angularJs復(fù)選框checkbox選中進行ng-show顯示隱藏的方法

    angularJs復(fù)選框checkbox選中進行ng-show顯示隱藏的方法

    今天小編就為大家分享一篇angularJs復(fù)選框checkbox選中進行ng-show顯示隱藏的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 實踐中學(xué)習(xí)AngularJS表單

    實踐中學(xué)習(xí)AngularJS表單

    表單是最常用的一種組建。在Angular.js中,其實并沒有單獨的為表單添加多少特殊功能。但是,利用Angular.js框架本身的特點,可以更友好的呈現(xiàn)表單。下面將介紹幾種常用的功能在Angular中是如何巧妙實現(xiàn)的
    2016-03-03
  • angularjs ocLazyLoad分步加載js文件實例

    angularjs ocLazyLoad分步加載js文件實例

    本篇文章主要介紹了angularjs ocLazyLoad分步加載js文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • AngularJS 模塊詳解及簡單實例

    AngularJS 模塊詳解及簡單實例

    本文主要介紹AngularJS 模塊,這里幫大家整理了相關(guān)資料,詳細介紹了AngularJS的基礎(chǔ)知識,有需要的朋友可以參考下
    2016-07-07
  • cnpm加速Angular項目創(chuàng)建的方法

    cnpm加速Angular項目創(chuàng)建的方法

    這篇文章主要介紹了cnpm加速Angular項目創(chuàng)建的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 淺談angular.js中實現(xiàn)雙向綁定的方法$watch $digest $apply

    淺談angular.js中實現(xiàn)雙向綁定的方法$watch $digest $apply

    Angular用戶都想知道數(shù)據(jù)綁定是怎么實現(xiàn)的。你可能會看到各種各樣的詞匯:$watch,$apply,$digest它們是如何工作的呢?這里我想回答這些問題,其實它們在官方的文檔里都已經(jīng)回答了,但是我還是想把它們結(jié)合在一起來講
    2015-10-10
  • angularjs 源碼解析之injector

    angularjs 源碼解析之injector

    這篇文章主要介紹angular中實現(xiàn)依賴注入的”幕后英雄” — 注入器(Injector)。說它是”幕后英雄”,是因為它才是依賴注入得以實現(xiàn)的主力。我們從源碼上來分析下他吧
    2016-08-08
  • Angular2自定義分頁組件

    Angular2自定義分頁組件

    本篇文章主要介紹了Angular2自定義分頁組件的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • AngularJS實現(xiàn)的自定義過濾器簡單示例

    AngularJS實現(xiàn)的自定義過濾器簡單示例

    這篇文章主要介紹了AngularJS實現(xiàn)的自定義過濾器,結(jié)合實例形式分析了AngularJS自定義過濾器的簡單定義與使用操作技巧,需要的朋友可以參考下
    2019-02-02

最新評論

佛学| 石狮市| 寻乌县| 通许县| 阆中市| 永兴县| 于都县| 乌兰县| 墨江| 汽车| 景东| 永春县| 新源县| 拉萨市| 舟曲县| 微山县| 额敏县| 托克托县| 沭阳县| 隆子县| 开阳县| 重庆市| 三都| 泽库县| 沅江市| 从化市| 铁岭县| 乡宁县| 左贡县| 加查县| 嘉定区| 益阳市| 天峻县| 汉沽区| 乡宁县| 八宿县| 余姚市| 景洪市| 石林| 紫云| 孟连|