博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在Angular6下使用ng-zorro-antd
阅读量:6266 次
发布时间:2019-06-22

本文共 1237 字,大约阅读时间需要 4 分钟。

受限于 一直都未发布 Angular6 版本,虽然早已经准备好 。

这里的原因是多重的,antd 的 less 版本需要 JavaScript 的支持,想当初我有想把它转成 Scss 版本,看到这些我内心是奔溃的。

而 Less 3.x 认为支持 JavaScript 是诡异的,因此提供了一个叫 @plugin 看起来更没那么诡异来解决 less 调用 JavaScript。

这就像三角恋一样,antd 那边没空重构,Angular Cli 默认又是依赖 less 3.x,虽然这个三角恋只差一行代码而已 。

zorro 支持 Angular6 吗?

zorro 从第一版本开始就以 APF 格式打包,Angular6 最大的改进是来自底层,而非应用层面,因此就应用层面而言不需要更改任何代码。

唯一你需要改动的便是 rxjs6 的破坏性变更 。

怎么做?

综合上述,让 zorro 支持 Angular6 有两种方式,毕竟在三角恋还未理清之前,我们什么事也做不了。

就应用层面而言,其核心在于 antd less 的编译以及 rxjs6 的变更。对于后者因为 zorro 内部大量使用 rxjs5 的类库,在 zorro 未提供 Angular6 版本之前安装 rxjs-compat 是我们唯一的选择。

npm i --save rxjs-compat

而对于前者有两种方案可以解决,这也是本文的核心。

降级 Less

Less 2.7.3 版本是 Angular5 所依赖,并且默认是支持 JavaScript,因此只需要降级 Less 版本就可以正常的使用。

npm i --save less@~2.7.0
对于
yarn 可能会失败,因为 Angular Cli 依赖 less 3,然而虽然依然可以使用
yarn add less@~2.7.0 -E 但好像并不生效,我对 yarn 并不熟悉,希望有人指点这其中的原因。

失去定制主题

前面一直说终究根源在于 Less 3 对 JavaScript 的支持导致的,好在 ng-zorro-antd 在 0.7.1 时新增了 CSS 版本的样式,它是一个已经编译过了 antd 所有样式文件。

当定制主题不是刚需时,可以直接在 angular.json 中引入 antd 的 css 文件,来解决 zorro 样式加载的问题。

"styles": [  "node_modules/ng-zorro-antd/src/ng-zorro-antd.css",  "src/styles.less"]

风险

zorro 0.7.x 已经承诺至 1.0 不会再有破坏性变更,其中 1.0 也标志者 Angular6 的完全支持。

因此,届时你完全可以恢复定制主题功能以及移除 rxjs-compat 亦可。

当然,若你的项目有第三方组件还未提供 Angular6 版本的话,那么这个升级就要先做好调研了,免得蛋疼。

转载地址:http://bucpa.baihongyu.com/

你可能感兴趣的文章
Codeforces Round #344 (Div. 2) A. Interview 水题
查看>>
Premiere Pro & After Effects插件开发调试方法
查看>>
墨西哥短暂生活杂谈
查看>>
第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
查看>>
异步编程之Javascript Promises 规范介绍
查看>>
EnumRemarkAttribute,获取属性值
查看>>
GCC扩展(转--对看kernel代码有帮助
查看>>
MVC3中使用RadioButtonFor()
查看>>
单元测试的概念
查看>>
Android特效 五种Toast详解
查看>>
phpcms(4) V9 栏目管理
查看>>
php多进程pcntl学习(采集新浪微博)
查看>>
[转]ListView学习笔记(一)——缓存机制
查看>>
【完全跨域】异步上传文件并获得返回值
查看>>
【TCP/IP详解 卷一:协议】第二章:链路层
查看>>
AWS开发人员认证考试样题解析
查看>>
Linux_DHCP服务搭建
查看>>
日请求亿级的 QQ 会员 AMS 平台 PHP7 升级实践
查看>>
【Coursera】Security Introduction -Eighth Week(2)
查看>>
Vue系列:如何将百度地图包装成Vue的组件
查看>>