Skip to content

Commit 5a032be

Browse files
authored
Create 2020.5.11.md
1 parent 41299e3 commit 5a032be

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

2019/09/2020.5.11.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
title: ie踏坑路
3+
---
4+
前端不归路之兼容性写法,不归路中路之ie
5+
<!--more-->
6+
坑一:
7+
error:SyntaxError: Unexpected token import at Array.map (<anonymous>)
8+
报错源 // import Vue from 'vue';
9+
原因:node.js 仅支持部分es6语法 import 不在支持之列
10+
解决方式使用替代:const Vue = require("vue");
11+
可能存在问题:这样修改如果babel.config.js中不加入该文件正常编译会出错,待查证
12+
坑二:
13+
error:SyntaxError: Unexpected token export
14+
at Array.map (<anonymous>)
15+
报错源//export function oneOf (value, validList) {
16+
原因:
17+
解决方法一:export.oneOf = function (value, validList)//无效
18+
解决方法二:module.exports = function (value, validList)//当前使用
19+
解决方法三:a中export default xxx改为 moudle.exports = xxxx
20+
21+
另外,如果在webpack中同一个模块下,使用了import xxx, 再使用module.exports也会出现报错:
22+
23+
Uncaught TypeError: Cannot assign to read only property 'exports' of object
24+
25+
此时,需要把module.exports修改为export default。如果其他很多模块都使用require的方式引入本模块,那么需要在require后面添加.default,或者使用一个中间文件复制本模块,然后在本模块require中间文件,再使用module.exports导出。
26+
27+
坑三:
28+
error:SyntaxError: Unexpected token const
29+
at Array.map (<anonymous>)
30+
报错源:moudle.exports = const MutationObserver = isServer ? false : window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false;
31+
原因:const声明位置
32+
解决方法:去掉const
33+
34+
35+
关于iview兼容ie
36+
解决方法:vue.config.js 加入transpileDependencies: ['strip-ansi','ansi-regex','view-design'] //For IE
37+
原因:babel默认没有把node_module中的view-design中的es6语法转成es5,es6和promise语法在ie中不兼容
38+
引发其他问题:引入后再运行开发环境时,所有浏览器打开项目为空白
39+
引发其他问题的可能原因:本地环境配置差异(具体待查明)
40+
解决办法:新建.npmrc文件 package-lock=false 删除node_module文件重新npm install
41+
42+
记录css兼容
43+
position ie(10含以下)无效
44+
解决:background-color:transparent
45+
height:100%无效
46+
解决:加上overflow:hidden;(经试验无效)
47+
flex:ie下兼容效果极差
48+
解决: 目前ie11尚可行 兼容性写法,将兼容写法封装成公共类
49+
写法:
50+
// flex布局兼容写法
51+
.flex{
52+
display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
53+
display: -moz-box; /* Firefox 17- */
54+
display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
55+
display: -moz-flex; /* Firefox 18+ */
56+
display: -ms-flexbox; /* IE 10 */
57+
display: flex;
58+
}
59+
.display_inline-flex{
60+
display: -webkit-inline-box;
61+
display: -ms-inline-flexbox;
62+
display: -webkit-inline-flex;
63+
display: inline-flex;
64+
}
65+
.display_inline-flex > *{
66+
display: block;
67+
}
68+
/*伸缩流方向*/
69+
.flex-direction_column{
70+
-webkit-box-orient: vertical;
71+
-ms-flex-direction: column;
72+
-webkit-flex-direction: column;
73+
flex-direction: column;
74+
}
75+
/*主轴对齐*/
76+
.justify-content_flex-center{
77+
-webkit-box-pack: center;
78+
-ms-flex-pack: center;
79+
-webkit-justify-content: center;
80+
justify-content: center;
81+
}
82+
.justify-content_flex-end{
83+
-webkit-box-pack: end;
84+
-ms-flex-pack: end;
85+
-webkit-justify-content: flex-end;
86+
justify-content: flex-end;
87+
}
88+
.justify-content_flex-justify{
89+
-webkit-box-pack: justify;
90+
-ms-flex-pack: justify;
91+
-webkit-justify-content: space-between;
92+
justify-content: space-between;
93+
}
94+
/*侧轴对齐*/
95+
.align-items_flex-start{
96+
-webkit-box-align: start;
97+
-ms-flex-align: start;
98+
-webkit-align-items: flex-start;
99+
align-items: flex-start;
100+
}
101+
.align-items_flex-end{
102+
-webkit-box-align: end;
103+
-ms-flex-align: end;
104+
-webkit-align-items: flex-end;
105+
align-items: flex-end;
106+
}
107+
.align-items_center{
108+
-webkit-box-align: center;
109+
-ms-flex-align: center;
110+
-webkit-align-items: center;
111+
align-items: center;
112+
}
113+
.align-items_baseline{
114+
-webkit-box-align: baseline;
115+
-ms-flex-align: baseline;
116+
-webkit-align-items: baseline;
117+
align-items: baseline;
118+
}
119+
/*伸缩性*/
120+
.flex_auto{
121+
-webkit-box-flex: 1;
122+
-ms-flex: auto;
123+
-webkit-flex: auto;
124+
flex: auto;
125+
}
126+
.flex_1{
127+
width: 0;
128+
-webkit-box-flex: 1;
129+
-ms-flex: 1;
130+
-webkit-flex: 1;
131+
flex: 1;
132+
}
133+
/*显示顺序*/
134+
.order_2{
135+
-webkit-box-ordinal-group: 2;
136+
-ms-flex-order: 2;
137+
-webkit-order: 2;
138+
order: 2;
139+
}
140+
.order_3{
141+
-webkit-box-ordinal-group: 3;
142+
-ms-flex-order: 3;
143+
-webkit-order: 3;
144+
order: 3;
145+
}
146+
147+
//flex兼容写法部分内容结束
148+

0 commit comments

Comments
 (0)