angular.json文件中字段含义

Angular CLI 6+的版本后,原先的angular-cli.json就被换成了angular.json。这种变化主要还是因为Angular CLI引入了 monorepo (一个空间管理多个项目) 的开发模式,即使用ng new出来的相当于一个大的工作空间,通过angular.json配置来管理各种ng generate application | library出来的项目或组件库。文件主要是工作区中所有项目的 CLI 配置,包括 CLI 使用的构建选项、运行选项、测试工具选项等。

monorepo下结构如:

但大多数人还是一个工作空间维护一个项目。如下图所示:

当你ng new一个工作空间时,默认会在根目录创建一个项目以及对应e2e项目。初始的angular.json结构如下:

$schema 

指向一个 JSON Schema文件,这个文件描述了angular.json所有的字段以及约束。

其实可以比作一个有“类型提示”功能文件,只要支持了这个功能的 IDE 或编辑器,在书写angular.json文件时便会给出相应的提示。

version

设置Angular 工作空间版本

newProjectRoot

新建项目所在的路径。当使用ng generate application | library创建一个新的项目时,会自动装配到设定的newProjectRoot目录下。

projects

放置所有项目的配置。其中一个项目为一个子项,如my-app为一个项目,在创建时自动生成。

在一个单独的配置中,可以通过灵活的配置实现一些自动化操作还有使用CLI内置的一些指令。

root

代表项目的“根目录”,也就是项目所在的位置,或者说项目源码的父级目录。项目的根目录包含了一些特定的配置。

sourceRoot

项目源码所在的目录,通常默认使用src目录。

projectType

表示这个项目是application还是library

prefix

使用ng generate component | directive生成组件或者指令时默认的selector前缀,通常我们使用命令创建的组件或指令都是app-xxx格式,我们可以手动在这里改动,使整个项目生效。

schematics

CLI中生成组件、指令、模块等文件的指令是使用@angular-devkit/schematics实现的,这些指令通常带有一些快捷配置,比如一个生成组件的命令:ng g c --spec=false --styleext=scss,这条命令可以直接生成一个 不带测试文件、使用scss为样式文件 的组件。如果每次都要手动输入这些配置就会显得麻烦,所以angular.json提供了schematics属性来统一设置一些生成类的命令配置。

这里的schematics是针对单个project来的。整个angular.json也有此字段,默认生效于所有project

CLI预设了几组选项,具体可参考“$schema”指向的文件,我们可以针对不同的选项进行配置:

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

component举例,如果要实现统一ng g c --spec=false --styleext=scss的效果,可以配置如下:

接着就可以直接使用ng g c直接生成对应的组件了。

architect

包含几组CLI相关的项目自动化命令配置,比如本地运行、编译、测试等等。默认预设了几组命令配置如buildserve等等:

配置属性

每一个配置项都有 3 个字段属性:builderoptionsconfigurations。

builder代表要执行的内置程序,因为CLI内置了一些自动化工具,architect只是提供了一个facade模式(通俗地讲,就是开发者不需要知道内部的复杂实现)给开发者配置使用,本质上还是调用的内置工具。

options代表针对当前builder要配置的配置项,调用不同的内置程序,是需要传对应的配置项的,由于配置项很多,这里也不会列出。

configurations代表这个命令的多种调用模式,在此配置里,我们可以定义不同的别名,然后使用不同的配置(配置的字段还是属于options里的),最后在使用命令时便可以手动选择不同的模式。

如何使用

CLI其实内置了几个快捷命令来对应默认生成的配置如ng serveng build等等,如果是我们额外自定义的配置,则可以使用ng run <project>:<architect>[:configurations] [其他配置]
命令来实现,其中projectarchitect为必填,configurations为选填。

defaultProject

默认项目,当使用一些CLI命令没有指定项目名称时,默认指向的项目。

原文地址:https://www.cnblogs.com/zhaidq/p/9936861.html

时间: 2024-10-29 19:08:46

angular.json文件中字段含义的相关文章

package.json文件各个选项含义

本文转自阮一峰老师教程,链接:http://javascript.ruanyifeng.com/nodejs/packagejson.html# 目录 概述 scripts字段 dependencies字段,devDependencies字段 peerDependencies bin字段 main字段 config 字段 其他 browser字段 engines 字段 man字段 preferGlobal字段 style字段 重要说明:本教程已经搬迁,此处不再维护,请访问新网址:wangdoc.

php 如何把中文写入json中 当json文件中还显示的是中文

/*** * 更新版本 */ function showupversionsub(){ #接受post 过来的数据 $app_type=$_POST['aap_type']; if($app_type=='android'||$app_type=='ios'||$app_type=='windows'){ #组成数组 $arr=array( mainVer=>$_POST['mainVer']==null? '':$_POST['mainVer'], upVer=>$_POST['upVer'

解决从json文件中获取不到数据的问题

在写项目时我们需要数据渲染,在渲染的过程中有时会发现有些数据一直渲染不到页面上: 解决此问题我总结了一下几点 1.首先先查找自己的json文件路径是否正确, 错误示范: $http.get(index.json).success(function(data){ $scope.Y_box=data.Y_box; }) 正确规范: $http.get('index.json').success(function(data){ $scope.Y_box=data.Y_box; }) 2.查看从后台获取

【Node.js学习笔记八】package.json文件中使用的指令

指令 说明 示例 name 包的唯一名字 "name": "camelot" preferGlobal 表示该模块更倾向于在全局范围内安装 "preferGlobal": true version 该模块的版本 "version": 0.0.1 author 项目的作者 "author": "[email protected]" description 模块的文字说明(描述) "

31、SAM文件中flag含义解释工具--转载

转载:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools.sourceforge.net/SAM1.pdf 很多人困惑SAM文件中的第二列FLAG值是什么意思.根据文档介绍我们可以计算,但是为了方便大家,下面给大家提供一个脚本工具,大家直接输入flag值就可

添加JSON Data到已经存在的JSON文件中

早上在学习<Post model至Web Api创建或是保存数据>http://www.cnblogs.com/insus/p/4343833.html ,如果你第二添加时,json文件得到的数据只能是单笔记录且是最新的. 那需要怎样把新添加的json数据附加至已经存在的数据中去?本篇Insus.NET就是想实现此功能. 想法是先读取json文件的数据转换为数据集存放在内存中,新添加的数据再附加上去,然后再把内存的数据集序列化保存为json文件即可. 上面代码示例中,有3大部分,第一部分是读取

Android xml资源文件中@的含义

一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor="@android:color/opaque_red" 注意:其实@android:type/name是@[package:]type/name 的一个子类 二[email protected]*

python3处理json文件中含有中文dumps的应用

python3的编码问题一直比较简单 内存中字符串采用unicode 存储到文件中采用utf-8 以下为str,byte互相转换的过程: str = "abc学习" str Out[6]: 'abc学习' mybyte = str.encode("utf-8") mybyte Out[8]: b'abc\xe5\xad\xa6\xe4\xb9\xa0' str2 = mybyte.decode("utf-8") str2 Out[10]: 'ab

python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中

# coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.setdefaultencoding('utf-8') class dataBean(object) : def __init__(self, title, url,date): self.date = date self.url = url self.title = title def obj_2_