首页 >> js开发 >> js小谈angular ng deploy的实现js大全
js小谈angular ng deploy的实现js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
Angular CLI 在 8.3.0 发布过一个新命令 ng deploy,可以将 Angular 应用部署到远程服务器或云存储上面,例如:Firebase hosting、Azure、GitHub pages 等等,这也是算是 Angular CLI 最后一个将 Angular 应用从开发到部署打通全能选手工具了。Firebase hostingAzureGitHub pages 快速入门
快速入门快速入门这里我以ng-deploy-oss 为示例,演示如何将 Angular 应用部署到七牛云。ng-deploy-oss 1、创建一个新项目
ng new hello-world --defaults
ng new hello-world --defaults
2、添加 ng-deploy-oss
ng add 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)
? 请选择云类型? 七牛云
? 请输入 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 deploy最后直接打开浏览器,就能直接访问 ng build --prod 后的效果。原理
原理原理事实上,ng deploy 如同其他 Angular schematics 指令 ng add、ng g 等类同,我曾经在 浅谈 Angular Cli Schematics 针对 Schematics 做过介绍。要自定义一个 ng deploy 只需要完成两个部分:浅谈 Angular Cli Schematics
编写 ng-add 来修改 angular.json 来告知使用哪个 Angular Libary 来部署;
编写上传动作 createBuilder。
编写 ng-add 来修改 angular.json 来告知使用哪个 Angular Libary 来部署;编写上传动作 createBuilder。ng-add
ng-addng-add给 angular.json 增加 deploy 节点:
{
"serve": {},
+
"deploy": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
}
}
{
"serve": {},
+
"deploy": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
}
}
以及 package.json 的 devDependencies 增加依赖包:
+ "ng-deploy-oss": "~1.0.0",
+ "ng-deploy-oss": "~1.0.0",有兴趣可以参考 ng-deploy-oss 的 ng-add 的完整写法。
createBuilder
createBuildercreateBuilder它是一个固定的方法:
export default createBuilder(async (schema: {}, context: BuilderContext): Promise => {
return { success: true };
});
export default createBuilder(async (schema: {}, context: BuilderContext): Promise => {
return { success: true };
});
将所有上传相关的动作写至该方法内;它返回的是一个 Promise ,要告知 ng deploy 结束务必返回:return { success: true };。 Promisereturn { success: true };。如何部署至不同目标上
如何部署至不同目标上如何部署至不同目标上目前 ng deploy 只支持单个目标部署,有时多个远程部署也是刚需,比如像当你在做一个开源时总需要照顾国内、国外时,总是希望一份 gh-pages 和 七牛云(免费额度),我们只需要修改 angular.json:ng deploy angular.json
{
"serve": {},
+
"deploy-qiniu": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
},
+
"deploy-gh-pages": {
+
"builder": "angular-cli-ghpages:deploy",
+
"options": {}
+
}
}
{
"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 依赖包。
angular-cli-ghpages 然后使用 ng run 来调用这两种不同目标: ng run
ng run:deploy-qiniu
ng run:deploy-gh-pages
ng run:deploy-qiniu
ng run:deploy-gh-pages结论
结论结论Angular 在国内有些小窘境,ng deploy 发布这么久,一直都没见到对国内一些云存储进行适配;事实上,直接利用 ng deploy 来部署应用至远程服务器上,可能在越来越多 Docker 应用后变得没那么重要,但对于常写开源的人来说,能够快速将 Angular 应用部署至国内常见的几个云存储上还是挺有意义的。
快速入门快速入门这里我以ng-deploy-oss 为示例,演示如何将 Angular 应用部署到七牛云。ng-deploy-oss 1、创建一个新项目
ng new hello-world --defaults
ng new hello-world --defaults
2、添加 ng-deploy-oss
ng add 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)
? 请选择云类型? 七牛云
? 请输入 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 deploy最后直接打开浏览器,就能直接访问 ng build --prod 后的效果。原理
原理原理事实上,ng deploy 如同其他 Angular schematics 指令 ng add、ng g 等类同,我曾经在 浅谈 Angular Cli Schematics 针对 Schematics 做过介绍。要自定义一个 ng deploy 只需要完成两个部分:浅谈 Angular Cli Schematics
编写 ng-add 来修改 angular.json 来告知使用哪个 Angular Libary 来部署;
编写上传动作 createBuilder。
编写 ng-add 来修改 angular.json 来告知使用哪个 Angular Libary 来部署;编写上传动作 createBuilder。ng-add
ng-addng-add给 angular.json 增加 deploy 节点:
{
"serve": {},
+
"deploy": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
}
}
{
"serve": {},
+
"deploy": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
}
}
以及 package.json 的 devDependencies 增加依赖包:
+ "ng-deploy-oss": "~1.0.0",
+ "ng-deploy-oss": "~1.0.0",有兴趣可以参考 ng-deploy-oss 的 ng-add 的完整写法。
createBuilder
createBuildercreateBuilder它是一个固定的方法:
export default createBuilder(async (schema: {}, context: BuilderContext): Promise
return { success: true };
});
export default createBuilder(async (schema: {}, context: BuilderContext): Promise
return { success: true };
});
将所有上传相关的动作写至该方法内;它返回的是一个 Promise
如何部署至不同目标上如何部署至不同目标上目前 ng deploy 只支持单个目标部署,有时多个远程部署也是刚需,比如像当你在做一个开源时总需要照顾国内、国外时,总是希望一份 gh-pages 和 七牛云(免费额度),我们只需要修改 angular.json:ng deploy angular.json
{
"serve": {},
+
"deploy-qiniu": {
+
"builder": "ng-deploy-oss:deploy",
+
"options": {}
+
},
+
"deploy-gh-pages": {
+
"builder": "angular-cli-ghpages:deploy",
+
"options": {}
+
}
}
{
"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 依赖包。
angular-cli-ghpages 然后使用 ng run 来调用这两种不同目标: ng run
ng run
ng run
ng run
ng run
结论结论Angular 在国内有些小窘境,ng deploy 发布这么久,一直都没见到对国内一些云存储进行适配;事实上,直接利用 ng deploy 来部署应用至远程服务器上,可能在越来越多 Docker 应用后变得没那么重要,但对于常写开源的人来说,能够快速将 Angular 应用部署至国内常见的几个云存储上还是挺有意义的。
相关文章:
- jsvue通过过滤器实现数据格式化js大全
- js一文读懂vue动态属性数据绑定(v-bind指令)js大全
- jsVue清除定时器setInterval优化方案分享js大全
- js解决elementUI 切换tab后 el_table 固定列下方多了一条线问题js大全
- js如何实现echarts markline标签名显示自己想要的js大全
- js详细分析vue表单数据的绑定js大全
- js代码基于VSCode调试网页JavaScript代码过程详解
- jsecharts 使用formatter 修改鼠标悬浮事件信息操作js大全
- jsVue切换组件实现返回后不重置数据,保留历史设置操作js大全
- jsvue-router之解决addRoutes使用遇到的坑js大全