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 --defaults
2、添加 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 来告知使用哪个 Angular Libary 来部署;
编写上传动作 createBuilder。
给 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 的完整写法。
它是一个固定的方法:
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-qiniu
ng run <project name>:deploy-gh-pages
Angular 在国内有些小窘境,ng deploy 发布这么久,一直都没见到对国内一些云存储进行适配;事实上,直接利用 ng deploy 来部署应用至远程服务器上,可能在越来越多 Docker 应用后变得没那么重要,但对于常写开源的人来说,能够快速将 Angular 应用部署至国内常见的几个云存储上还是挺有意义的。
原文:https://segmentfault.com/a/1190000022279971
搜索输入框中,只当用户停止输入后,才进行后续的操作,比如发起Http请求等。本文将分别探讨在angular.js和vue.js中如何实现对用户输入的防抖。
如果想像我一样全面的了解Angular的脏值检测机制,除了浏览源代码之外别无他法,网上可没有太多可用信息。大部分文章都提到,Angular中每个组件都自带一个脏值检测器,但是它们都仅仅停留在脏值检测的策略和案例的使用,并没有做太多的深入。
每次我读到 Angular 如何操作 DOM 相关文章时,总会发现这些文章提到 ElementRef、TemplateRef、ViewContainerRef 和其他的类。尽管这些类在 Angular 官方文档或相关文章会有涉及,但是很少会去描述整体思路
使用 angular JS 的时候,把 angularJS 放到文件底部,在渲染页面的时候,会出现闪一下的情况。解决办法:1、使用 ng-cloak ;2、将angular.js的引入放到head前,提前加载;3、使用 ng-bind
在使用Angular的时候,希望能像VUE那样,修改代码后浏览器不刷新,页面对应修改的组件自动更新的功能。这个功能的名字时HMR (hot module replace)。稍微研究了一下,发现在angular/cli创建的项目中,实现这个不算太难,步骤如下
Angular 6目的是为了使Angular变得更小,更快,更易于使用。Angular 6版本更加关注底层框架和工具链,同时加快了工具链在Angular中的运行速度,除此以外,这次更新还包括框架包
Angular2项目日常开发中所遇问题及解决方案记录:angular-cli修改域名及端口号、解决双击变蓝的问题、修改浏览器滚动条的默认样式等等
ngClass要绑定的类名会在tr根据数据循环生成html的过程中调用组件中定义的isHideClass方法,并把i(index)带过去让方法使用根据方法逻辑返回的类名去绑定写好的样式
这篇文章主要介绍了Angularjs的$http异步删除数据详解及实例的相关资料,这里提供实现思路及实现具体的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。
在angularJS中定义服务共有四种常见的方式:factory,service,provider,constant,value.使用形式的不同:
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!