最近因为需要开发一个前后端分离的应用,一看angular6出来了,就立马想要用用看,所以立马确立了angular6+ng-zorro-antd的前端,但是在使用中发现,我没法引入相应的样式,看我的引入没有任何问题,通过1个多小时的查找资料,百度,分析,找出了这个坑。如下,现在项目也完成了也就来记录一下,希望有跟我一样问题的小伙伴可以免去一些麻烦。
https://github.com/angular/angular-cli/issues/10430
上面的链接是讲angular-cli 6.0的一些问题,包括了我这个问题,内容可以进入查看,便于理解。
1.angular6改变
.angular-cli.json 变成 angular.json
若干由根目录文件转移至 src 目录中
./karma.js 放入 src
package.json 的 browserslist 节点转换成 ./src/browserslist 文件形式
e2e 目录变化
./protractor.conf.js 放入 e2e
e2e 目录增加 src 目录且将文件转移至该目录中,且注意相关路径
目录文件结构变化并不是很大,也很好理解,可以自行对照。或者去查看angular6的版本说明。
2.ng-zorro是否支持angular6?
http://ng.ant.design/docs/introduce/zh
查看最新版本说明,是支持angular^6.0.0。
3.如何解决该问题
a.如果不需要定制主题
直接把angular.json文件中添加zorro的样式文件如下代码:
"styles": ["node_modules/ng-zorro-antd/src/ng-zorro-antd.min.css"]
b.如果需要定制主题
因为受限与https://github.com/angular/angular-cli/issues/10430的问题
所以我们必须将less降级
#npm i --save less@~2.7.0
当依然遇到无法找到 ng-zorro-antd.less 文件时,相当程度是 less 路径因素,
主要包括:
使用 cnpm 安装依赖包,其软链接破坏了实质的包路径,使用 npm 或 yarn。
~@ng-zorro-antd 替换成 node_modules/ng-zorro-antd。
备注:在确定好一个项目搭建框架之前,先要做好调研工作,不能一味追求最新版本,这样成本会很大的,如果问题越早发现了还好,能够及时的评估和解决,若是做到中途或者后面快结束发现就会很蛋疼。