"@schematics/angular:component": {
"type": "object",
"properties": {
"changeDetection": {
"description": "Specifies the change detection strategy.",
"enum": ["Default", "OnPush"],
"type": "string",
"default": "Default",
"alias": "c"
},
"entryComponent": {
"type": "boolean",
"default": false,
"description": "Specifies if the component is an entry component of declaring module."
},
"export": {
"type": "boolean",
"default": false,
"description": "Specifies if declaring module exports the component."
},
"flat": {
"type": "boolean",
"description": "Flag to indicate if a dir is created.",
"default": false
},
"inlineStyle": {
"description": "Specifies if the style will be in the ts file.",
"type": "boolean",
"default": false,
"alias": "s"
},
"inlineTemplate": {
"description": "Specifies if the template will be in the ts file.",
"type": "boolean",
"default": false,
"alias": "t"
},
"module": {
"type": "string",
"description": "Allows specification of the declaring module.",
"alias": "m"
},
"prefix": {
"type": "string",
"format": "html-selector",
"description": "The prefix to apply to generated selectors.",
"alias": "p"
},
"selector": {
"type": "string",
"format": "html-selector",
"description": "The selector to use for the component."
},
"skipImport": {
"type": "boolean",
"description": "Flag to skip the module import.",
"default": false
},
"spec": {
"type": "boolean",
"description": "Specifies if a spec file is generated.",
"default": true
},
"styleext": {
"description": "The file extension to be used for style files.",
"type": "string",
"default": "css"
},
"style": {
"description": "The file extension or preprocessor to use for style files.",
"type": "string",
"default": "css",
"enum": [
"css",
"scss",
"sass",
"less",
"styl"
]
},
"viewEncapsulation": {
"description": "Specifies the view encapsulation strategy.",
"enum": ["Emulated", "Native", "None", "ShadowDom"],
"type": "string",
"alias": "v"
}
}
angular多工程探索.md
开发 Angular 就不能不知道 Angular-CLI 这个超级好用的命令行工具,有了这个工具,原本混沌的开发环境,顿时清晰,许多繁琐的琐事,一个命令就搞定。
Angular-cli
从2015年发布到现在已经经历很多版本,主要有2个大版本变化,一个单工程,一个是多工程。 单工程是1.x
版本,多工程是6.x+
版本,最新版是7.x
。如果使用Angular-cli
开发Angular
应用,当前版本是Angular6
以下的,最好不要直接ng update
,会有很多坑等你,最保险也是最安全的方式是,先升级全局angular-cli
,再用它ng new project
,将之前项目scr
目录内容拷贝进去,修改package.json
和angular.json
(注:1.x里面叫.angular.json
)。安装第三方依赖包,然后运行,修改飚红的错误即可。这个升级最大错误是rxjs
问题。当前版本是Angular6
的,可以直接升级Angular7
。如果你在升级过程中遇到问题,可以联系我寻求帮助。多工程
多工程是
angular-cli 6x
一个核心亮点,这个是借鉴@angular/router
作者写的一个angular-cli
增强工具nrwl,目的多个工程共享一个node_modules
。 其实我认为还有2个目的,这也是本文的重点,这里简单描述一下。一个是angular-cli
随着工程增大,编译越来越慢,这个时候拆模块就很重要的。一个是可以直接发布npm
包,打造自己组件库。准备
环境
node V8 + (可以用nvm做版本管理,最好选用node 10)
创建项目
有2个常用携带选择命令:
Would you like to add Angular routing? (y/N)
Y 这个会默认生存一个app-routing.module.ts
,并且在相关文件注入,这个表示根路由。Which stylesheet format would you like to use? (Use arrow keys)
Sass CSS (.css ) Sass (.scss) [ http://sass-lang.com ] Less (.less) [ http://lesscss.org ] Stylus (.styl) [ http://stylus-lang.com ] 这个是选择默认样式文件的选项,相对支持最好的css预处理器是Sass
。选择完成以后自动
npm install
安装package.json
所需要依赖。angular.json简单详解
全局配置
projects配置
默认创建
angular-multiple-projects
项目配置angular-multiple-projects-e2e
项目e2e测试配置application 配置
root
项目根目录,默认就是当前根目录,这个最好不要修改,会影响很多配置和功能sourceRoot
开发源文件地址projectType
项目类型application
和library
prefix
创建组件和指令的前缀 默认组件是app-component
, 默认指令是[appDirective]
schematics
这个配置对应 ng generate 里的各个配置architect
这个配置是整开发,生成配置核心,重点讲解schematics 配置
例如:创建项目选择组件css
组件生成配置:ng generate component
那常用配置有哪些,具体可以参考
./node_modules/@angular/cli/lib/config/schema.json#schematicOptions
这里我们拿组件来举例子:
description
描述enum
可选择的值type
类型format
文件书写格式alias
使用配置可使用的别名default
默认值architect 配置
build
生产发布配置serve
开发环境配置extract-i18n
多语言配置test
单元测试配置lint
代码风格检查配置build 配置
builder
编译脚本serve
开发脚本我们首先运行一下效果再来介绍它们:
等待编译完成运行
如果使用
sass
,编译出错ERROR in ./src/styles.scss
原因找不到
Error: Cannot find module 'node-sass'
。这里主要是
Windows
解决方案:npm start
实际运行的是ng serve相信很多之前都会看到其他人的文章,都会由这样例子,比如编译完成自动打开默认浏览器
在
package.json
里面配置在现在版本里面完全不用这么麻烦了,直接在
options
添加即可。然后直接"start": "ng serve"
即可。这里说几个和我们开发息息相关的重要配置:注意:每次修改配置,需要重启
开发时候本地开发最容易出现端口号被占用,默认是4200
angular-multiple-projects-e2e
项目e2e测试配置使用多工程