前端工程化:angular5+NG-ZORRO+SSR

Posted AI量化实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端工程化:angular5+NG-ZORRO+SSR相关的知识,希望对你有一定的参考价值。

前端工程化的趋势,很好的实现了前后端团队分离开发。之前最令人担心的问题是SEO。因为页面都是js生成的,对于spider非常不友好。有问题就有解决方案,SSR(Sever-Side-Renderring)服务端渲染方案来了。


vue有vue的解决方案,之前本人是非常喜欢vue的,超轻量。但最终要整合出一个工程化的东西,发现要整合的东西太多,这需要踩不少的坑。所以,考虑到可维护性,还是使用angular。


angular更新到5.0版本了,还有阿里巴巴开源的界面库Ng-zorro。在这些基础上,我们再配置实现SSR。


npm的服务器在国外,经常会抽风,可以考虑淘宝的cnpm。

npm install -g cnpm --registry=https://registry.npm.taobao.org


然后使用cnpm来安装ng会快不少。

cnpm install -g @angular/cli

很快就安装好了。

然后定位到要生成项目的目录下,直接ng new project-name即可,会自动生成项目模板,并自动npm install安装依赖包。如果npm太慢或挂了,这时候可以改用cnpm install安装依赖包。

然后ng serve即可运行,如果要自动打开浏览器,可以使用ng serve --open


这样一个angular的工程就运行起来了。我们可以修改一些简单的东西,看下网页内容的变化。


下面开始集成ng-norro,在工程当前目录下:cnpm install ng-zorro-antd --save

打开src/app/app.module.ts。

新增导入如下模块,并在imports里声明。

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { NgZorroAntdModule } from 'ng-zorro-antd';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
   HttpModule,
   BrowserAnimationsModule,
   NgZorroAntdModule.forRoot()

],
providers: [],
bootstrap: [AppComponent]
})

这样就成功在全局引入了 ng-zorro-antd。在src/app/component.html加一个按钮可以看到button的效果:

<button nz-button [nzType]="'primary'">测试按钮</button>

这样,ng-zorro-antd也就安装完成并可以使用了。

使用ng build,文件会构建到dist目录,就可以部署了。如果要像静态页能在本地打开,需要修改一下base-href,ng build --base-href ./


下面来看SSR,解决SEO的问题。angular的解决方案是angular universal。

https://universal.angular.io/

下面这篇文章更好理解,官方的start说得不清不楚。

https://scotch.io/tutorials/server-side-rendering-in-angular-2-with-angular-universal


直接使用官方的universal的模板

git clone https://github.com/angular/universal-starter demo

cd demo & npm install


具体SSR的SEO方案展开描述,明天继续。


扫描下方二维码,关注:AI量化实验室(ailabx),了解AI量化最前沿技术、资讯。


以上是关于前端工程化:angular5+NG-ZORRO+SSR的主要内容,如果未能解决你的问题,请参考以下文章

《Angular与ng-zorro结合》

Angular5服务器端渲染,外部Api数据服务在s-s-r中不起作用

最近状况

使用 ng-zorro 构建动态菜单

无法渲染某些 NG-ZORRO 图标

使用刀片将 Angular5 集成到现有的 Laravel 项目中