(来源于网图)
呃呃呃。。。反正就是这种情况
搞一下
icon 乱码的主要原因是 webpack打包 icon 导致 icon 由原本的
{ content: "\ea0e"; }
变成了
{ content: "□"; }
即 16进制码 与 双字节字符的区别
原本16进制是ok的,结果一打包,dart-scss编译 的问题, loader的问题 共同导致了icon代码的不稳定性
解决方案
icon既然打包出问题,那我不打包总行了吧
1.在main中, 将原本的
import "element-ui/lib/theme-chalk/index.css";
注释掉,
2.不经过打包单独引入
import "element-ui/lib/theme-chalk/icon.css";
3.在src/style/element-variables.scss 路径中
注释掉之前的
@import "~element-ui/packages/theme-chalk/src/index";
新引入的完整代码在以下
// @import "~element-ui/packages/theme-chalk/src/index";
@import '~element-ui/packages/theme-chalk/src/pagination.scss';
@import '~element-ui/packages/theme-chalk/src/dialog.scss';
@import '~element-ui/packages/theme-chalk/src/autocomplete.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown-menu.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown-item.scss';
@import '~element-ui/packages/theme-chalk/src/menu.scss';
@import '~element-ui/packages/theme-chalk/src/submenu.scss';
@import '~element-ui/packages/theme-chalk/src/menu-item.scss';
@import '~element-ui/packages/theme-chalk/src/menu-item-group.scss';
@import '~element-ui/packages/theme-chalk/src/input.scss';
@import '~element-ui/packages/theme-chalk/src/input-number.scss';
@import '~element-ui/packages/theme-chalk/src/radio.scss';
@import '~element-ui/packages/theme-chalk/src/radio-group.scss';
@import '~element-ui/packages/theme-chalk/src/radio-button.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox-button.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox-group.scss';
@import '~element-ui/packages/theme-chalk/src/switch.scss';
@import '~element-ui/packages/theme-chalk/src/select.scss';
@import '~element-ui/packages/theme-chalk/src/button.scss';
@import '~element-ui/packages/theme-chalk/src/button-group.scss';
@import '~element-ui/packages/theme-chalk/src/table.scss';
@import '~element-ui/packages/theme-chalk/src/table-column.scss';
@import '~element-ui/packages/theme-chalk/src/date-picker.scss';
@import '~element-ui/packages/theme-chalk/src/time-select.scss';
@import '~element-ui/packages/theme-chalk/src/time-picker.scss';
@import '~element-ui/packages/theme-chalk/src/popover.scss';
@import '~element-ui/packages/theme-chalk/src/tooltip.scss';
@import '~element-ui/packages/theme-chalk/src/message-box.scss';
@import '~element-ui/packages/theme-chalk/src/breadcrumb.scss';
@import '~element-ui/packages/theme-chalk/src/breadcrumb-item.scss';
@import '~element-ui/packages/theme-chalk/src/form.scss';
@import '~element-ui/packages/theme-chalk/src/form-item.scss';
@import '~element-ui/packages/theme-chalk/src/tabs.scss';
@import '~element-ui/packages/theme-chalk/src/tab-pane.scss';
@import '~element-ui/packages/theme-chalk/src/tag.scss';
@import '~element-ui/packages/theme-chalk/src/tree.scss';
@import '~element-ui/packages/theme-chalk/src/alert.scss';
@import '~element-ui/packages/theme-chalk/src/notification.scss';
@import '~element-ui/packages/theme-chalk/src/slider.scss';
@import '~element-ui/packages/theme-chalk/src/loading.scss';
@import '~element-ui/packages/theme-chalk/src/row.scss';
@import '~element-ui/packages/theme-chalk/src/col.scss';
@import '~element-ui/packages/theme-chalk/src/upload.scss';
@import '~element-ui/packages/theme-chalk/src/progress.scss';
@import '~element-ui/packages/theme-chalk/src/spinner.scss';
@import '~element-ui/packages/theme-chalk/src/message.scss';
@import '~element-ui/packages/theme-chalk/src/badge.scss';
@import '~element-ui/packages/theme-chalk/src/card.scss';
@import '~element-ui/packages/theme-chalk/src/rate.scss';
@import '~element-ui/packages/theme-chalk/src/steps.scss';
@import '~element-ui/packages/theme-chalk/src/step.scss';
@import '~element-ui/packages/theme-chalk/src/carousel.scss';
@import '~element-ui/packages/theme-chalk/src/scrollbar.scss';
@import '~element-ui/packages/theme-chalk/src/carousel-item.scss';
@import '~element-ui/packages/theme-chalk/src/collapse.scss';
@import '~element-ui/packages/theme-chalk/src/collapse-item.scss';
@import '~element-ui/packages/theme-chalk/src/cascader.scss';
@import '~element-ui/packages/theme-chalk/src/color-picker.scss';
@import '~element-ui/packages/theme-chalk/src/transfer.scss';
@import '~element-ui/packages/theme-chalk/src/container.scss';
@import '~element-ui/packages/theme-chalk/src/header.scss';
@import '~element-ui/packages/theme-chalk/src/aside.scss';
@import '~element-ui/packages/theme-chalk/src/main.scss';
@import '~element-ui/packages/theme-chalk/src/footer.scss';
@import '~element-ui/packages/theme-chalk/src/timeline.scss';
@import '~element-ui/packages/theme-chalk/src/timeline-item.scss';
@import '~element-ui/packages/theme-chalk/src/link.scss';
@import '~element-ui/packages/theme-chalk/src/divider.scss';
@import '~element-ui/packages/theme-chalk/src/image.scss';
@import '~element-ui/packages/theme-chalk/src/calendar.scss';
@import '~element-ui/packages/theme-chalk/src/backtop.scss';
@import '~element-ui/packages/theme-chalk/src/infinite-scroll.scss';
@import '~element-ui/packages/theme-chalk/src/page-header.scss';
@import '~element-ui/packages/theme-chalk/src/cascader-panel.scss';
@import '~element-ui/packages/theme-chalk/src/avatar.scss';
@import '~element-ui/packages/theme-chalk/src/drawer.scss';
@import '~element-ui/packages/theme-chalk/src/popconfirm.scss';
@import '~element-ui/packages/theme-chalk/src/common/transition.scss';
这种方式就是icon.scss不打包,其他 element 组件打包
至此,icon乱码问题解决 (下面还有~)
很重要
但也导致了一些副作用
这也导致了 element 组件需要按需引入,后续开发如果有新的组件进厂要记得在这里加一下,并且和同事说一说这个情况
PS: 在开发过程中解决问题但没有和同事说明,合并分支结果有冲突,大半夜2点搞得很不愉快,后来发现那个新增组件没加到 element-variables.scss 路径中 (transition.scss 这个家伙,现在已经加入进去了,别担心,上面代码直接拉就好),但你如果考虑使用element的新增组件的时候记得加!