时间:2021-05-18
Angular CLI 在 8.3.0 发布过一个新命令 ng deploy,可以将 Angular 应用部署到远程服务器或云存储上面,例如:Firebase hosting、Azure、GitHub pages 等等,这也是算是 Angular CLI 最后一个将 Angular 应用从开发到部署打通全能选手工具了。
快速入门
这里我以ng-deploy-oss 为示例,演示如何将 Angular 应用部署到七牛云。
1、创建一个新项目
ng new hello-world --defaults2、添加 ng-deploy-oss
ng add ng-deploy-oss命令行会让你输入几个参数:
? 请选择云类型? 七牛云? 请输入 AccessKey: 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 等类同,我曾经在 浅谈 Angular Cli Schematics 针对 Schematics 做过介绍。要自定义一个 ng deploy 只需要完成两个部分:
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 { success: true };});将所有上传相关的动作写至该方法内;它返回的是一个 Promise<BuilderOutput> ,要告知 ng deploy 结束务必返回:return { success: 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 引用的是 angular-cli-ghpages 依赖包。
然后使用 ng run 来调用这两种不同目标:
ng run <project name>:deploy-qiniung run <project name>:deploy-gh-pages结论
Angular 在国内有些小窘境,ng deploy 发布这么久,一直都没见到对国内一些云存储进行适配;事实上,直接利用 ng deploy 来部署应用至远程服务器上,可能在越来越多 Docker 应用后变得没那么重要,但对于常写开源的人来说,能够快速将 Angular 应用部署至国内常见的几个云存储上还是挺有意义的。
到此这篇关于小谈angular ng deploy的实现的文章就介绍到这了,更多相关angular ng deploy内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
准备Angular2环境ng-bootstrap是基于Angular2的,因此需要先准备Angular2的环境。使用ng-bootstrap下载ng-boots
npm安装ng-bootstrap模块npminstall@ng-bootstrap/ng-bootstrap--save在Angular项目配置app.mod
前言AngularJS自带指令目前有ng-include、ng-view、ng-switch、ng-repeat。这样的原因是因为,这些指令虽然是Angular
下面一段代码给大家介绍了Angular在一个页面中使用两个ng-app的方法,具体代码如下所示:ng-app指令,angular找到第一个ng-app就不会再找
Angular6热加载配置方案,分享给大家,具体如下:示例ng版本如下:$ng--version__________/\________||______/___