小谈angular ng deploy的实现
Angular CLI 在 8.3.0 发布过一个新命令 ng deploy,可以将 Angular 应用部署到远程服务器或云存储上面,例如、、等等,这也是算是 Angular CLI 一个将 Angular 应用从开发到部署打通全能选手工具了。
快速入门
这里我以为示例,演示如何将 Angular 应用部署到七牛云。
1、创建一个新项目
ng new hello-world --defaults
2、添加 ng-deploy-oss
ng add ng-deploy-oss
命令行会让你输入几个参数
? 请选择云类型? 七牛云 ? 请输入 AessKey test ? 请输入 SecretKey test ? 所在机房支持 qiniu.zone.Zone_z0 - 华东 ? 请输入 Bucket ng-test ? 请输入路径前缀,如果不指定表示放在根目录下 ? 请输入构建生产环境的 NPM 命令行(例如npm run build),若为空表示自动根据 angular.json 构建生成环境 UPDATE angular.json (3925 bytes) UPDATE package.json (1511 bytes)
3、部署
ng deploy
直接打开浏览器,就能直接访问 ng build --prod 后的效果。
原理
事实上,ng deploy 如同其他 Angular schematics 指令 ng add、ng g 等类同,我曾经在 针对 Schematics 做过介绍。要自定义一个 ng deploy 只需要完成两个部分
- 编写 ng-add 来修改 angular.json 来告知使用哪个 Angular Libary 来部署;
- 编写上传动作 createBuilder。
ng-add
给 angular.json 增加 deploy 节点
{ "serve": {}, + "deploy": { + "builder": "ng-deploy-oss:deploy", + "options": {} + } }
以及 package.json 的 devDependencies 增加依赖包
+ "ng-deploy-oss": "~1.0.0",
有兴趣可以参考 ng-deploy-oss 的 ng-add 的完整写法。
createBuilder
它是一个固定的方法
export default createBuilder<any>(async (schema: {}, context: BuilderContext): Promise<BuilderOutput> => { return { suess: true }; });
将所有上传相关的动作写至该方法内;它返回的是一个 Promise<BuilderOutput>
,要告知 ng deploy 结束务必返回return { suess: true };。
如何部署至不同目标上
目前 ng deploy
只支持单个目标部署,有时多个远程部署也是刚需,比如像当你在做一个开源时总需要照顾国内、国外时,总是希望一份 gh-pages 和 七牛云(免费额度),我们只需要修改 angular.json
{ "serve": {}, + "deploy-qiniu": { + "builder": "ng-deploy-oss:deploy", + "options": {} + }, + "deploy-gh-pages": { + "builder": "angular-cli-ghpages:deploy", + "options": {} + } }
注意angular-cli-ghpages:deploy 引用的是 依赖包。
然后使用 ng run
来调用这两种不同目标
ng run <project name>:deploy-qiniu ng run <project name>:deploy-gh-pages
结论
Angular 在国内有些小窘境,ng deploy 发布这么久,一直都没见到对国内一些云存储进行适配;事实上,直接利用 ng deploy 来部署应用至远程服务器上,可能在越来越多 Docker 应用后变得没那么重要,但对于常写开源的人来说,能够快速将 Angular 应用部署至国内常见的几个云存储上还是挺有意义的。
到此这篇关于小谈angular ng deploy的实现的文章就介绍到这了,更多相关angular ng deploy内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南