6j{WcvSwI;3t4cAov{`?*FCx|I*+`y7F@XGUNtRa$yFkjD6uGyc`0>k6YxCWa&EIY2vF+1eqT>B*Hc9tdl3!5~+?`RFf%D-zX0-h!mC
zR@U~n(JT7=HtTikN6!saKL`5RPmMg;v1(m%2lSLx;n=<88TF>l{cUF-Zho;Bt|qE$
z{xa}7hGfBWxw(>x7q%FlG+7{kNuYUCOm8y#JB5-R?p?&JE$O!haFIlNMl0ucQ|$=`
zktFK({VK?rK7r?-slwvBjq4^nr-cXvNko0$`82CmiD<)CQqV(R{RV}b<4g_x9s)4TbUBf|C*H}zk%-Ujh~Y-y#s
zc3ONzLKuH!;pluq4=K2%@6D+td2Qe6K)m!ZQ6y#^6e6oN&L5yMT?TM~Z@M~seE+u}
z+0?65p{&z+uN?{QT6*z?N6l55Syk2^*s|9PStWTd=UndqP19LJ>J66q^Q$tP%!+HB
zKbyH|99PSJPY(l_f#C@i{d|n9Q6;<)VkMO}5*maK70s=i>&-|dd?5cZ*Jy6=|^(c^#k$1D;0
z3-_yTGiFcLMpy_PQUC2Rpd}iqXLVdCh7WyfW3Y_uG%mF7*7vgYuP^fo#~9Bvy4K6>
zYvZs?>@@23UGJY}?>~_Jn5WzsJTe0*?B|p&$Tiy4)cklcYat^Djv*#@t=Nv%CBN3?
z9ZbQgkTz-j0=OVcfzhK0v-+zU1~*j~L9e=3?kQ!mfA3Y{<4SOG;Ebfbtn}7-1-h?K
z+xn~g8nxHL6H0s_*oJdY+)IZ-IY~Es{G!)?AB9XRqCa)~Tz%8#yj|h()3c=rp)ulE
zJkXzAiZvtc;eNpdS5y974kKB2AJhJ?-5M+9G$r>?s@yUf1ZV{+u&FAqrDwGDT1
z>xHgWcEb^pZ*aS=Vg+ORGwLIl9O$1LQip>A#9xTRE_FY{1k(#G&_8#k{oAbf+DHHr
zzgmO%SXmIY3^
z8u81`E_6oY)2=w8RxyyBo>tq9Z5*;UW?t=`Y#w-gJ1H{@%L{MtvVqkAfTt8Q0(tOA0RL*}X~}wRpvqvN
zd&^%O$3r(Zr2j-W9R)Hu;;V6S=#b;451)ch~mZg>(+DjkE*02J`$r4gbhV61)s{
zv-gCrm_e4l!+NqCq+Txc>=uR`{hGM${h>$=VPU5fI{^n#uB{Nxk2=`E@YG&ObR30D
z@P^j6ai1!|R{C1|Axf40M(_X-V)+XhF}*u91DN6(;Mf7Gi`Ex!Xw*4F=zA6_U{c5L
z_HXePl$$Z12u!zTw5}a8k4YUUSP^cqKp8gm*|OWfFPZU*UHOyM1keQG%rzjK9~bTw7S3`9%DJfK
zEyJWs!gRh%09wegBZi_~x1M)rz-%fV;Bbim9#Vi3jVU5ez8p=CPA$gy{|@6){f~i%
zj%CFH5SeGW@o=NN@PJB6=F@ieQ3TZ^u?4H$2Eu-L(ovlG#8c0YSHS(nzVeN@O^4Pm
zWQ(yNgCn|(1s_y_bdVO;;)Wg8L4c&iE5uWSBk5B!Beol}sl`U@AV)RnI7;}YaO+HZ
z_g20`lXvh$B--`*A7B|$YnuwufYRmiDqAOrd9ili61U+l$#G#JlE@v6
zFwH0RsA+g5xzy5`F(UI`8{pyR(`M?~4d_sRRT}=~-LhWx18?f5%z+PcusorcpdZAz
zj;#APH|HrP$JC?VR8cRC2Me>|>*!W=Nr@du-tGN{F?UF2vG2*bUX^voNZtfz^ZLZU
zv6kdJwjRa#x#-Scjz0-F7f1O{m89^}x6Jra)8QDNFPuCN`IB^=jV8C3p19!snMuTk
zJcQh^vU-SHC0RGz`#DDgR?X3G`)L`Cn?KlK3TimL%dwwN9D{!3-<*4K;^17N?lMvw
z9^(jO~0(B+@OhTj=(_2g(G2%n(){uuxk3Y=w4g`Xd^BmRg1kaul-U=E_@TF#jq@#(9z
zi7Cxq2*O{0*`G>$1j}!p?3P>`%Z-Y+ohsbOJL9amqR1@9iB2L0hn(zI*~Uo~Y{0`S
z37v7GjCDrW{P(`6ow-qZGVLRE^ytq!$KNp?BNo~cgo1`OsLxq7GGKHXEH2KvvXtMn
zaUAjL5qFO|cN{gZc#nN`K*u8UMhcMHSF9D(c72{AckElFYNcc{pi+u6sn#dKFXmz(
z{tgpt{7UB)L@1R0x6BZz3W10<;~h(Z7xQ&6g<;3w1a=N9RyoJlH7qpN0%+X7PG-<}
zmCAe<5x2(Fuuxz9B}JS?N!%Wd*yrThnUGeZhYSeI^piY(cpZAt(iv*9{H@Nt~&2oEHJ_bEQ^JFttFf?$8G-TW!8l
ztR^30;g|KKZt4>_pJKt)BW`k8yMQ9UyofbG3Pp(fQtvm0wZahV+)2kDtaa!-K@hx!61}+Typ)V?qbBBt?jpa4)
zU99DQFY1kco3S*#^(?TAaeQ66^}sx2)(u!uXg!zDw|$e}4Fm?q8CFQLe{8-e;xmd$
zi4nM1jp#wVPwb?!pCP9LMvTnnZ|L2UkJ=w3f>D=!9Q_6eC<+e^A>LiddXXw59!3MC
zP(J?YmS#u29{R1EPKnyss0u5={**X!#ukP=$xEadOv4O!Qv3JXq*t6tZa%AQ3+isl
zdZwzbv=FDmI#kzmy-f8Ozp^IY!y6$(=a_BkLLksp{wmbhz1tNd*Qp0o@6sPWmi`oG
z>xCvcB7sNK&S5Q@Q~qFP+(A+n;s5OgNUGz!Z`zzaJxRWqiE57Lo6!G6uv(qv3GL^M
zxrli5%o!p_jWF;^kJu90=t9g2r>zCdw~+P;>+d=OYCb%;k9*f}ZB8qw{1n0y5eCb2
z-~{7w(smp5a=n5`RjXg~I}^3BToEao0;O=eZMNZek7_m$Pdgi4EwZh)>9Go`*TL^q
z|Db6~$*PY2u%PNGE;6H)Wf1r&ktDDM8-$8c8V@B$D~We0QCWUtLbTR=NpDb~4U$E0
zkWY^obaml=)-Hn9$!LZ-?%CUKsgBNbmA;{c0nEC!WuI}ZC&ehJ?8zfX)LO*a4bOG^
zpjwhepB;nBjU)eKG9x4`WjUs0h&e!;;V|eUrm}DcRgA-G-rud4I{!RdjvBXjadJzW
zpJC=V;_nT>6gL1~l}$lT>^rZ+y6tx~tCe?=%guIn)eAdi5-U?#ec@aooFRtVst41y
zG;ro$GHra0_dZvgSF03DIJ(1cdLh=jM2->hw|s(SnyNYFUi~JjQexxi#tbk<xt!l81h
zQF*cgXsHa6&Gq0t@$nvKZV%XE0~+bn8lVnd;}x4*Cl;U3$}M8eJWc)O=H(}>6JL}(
zTJ)wz?O<)Y=vr)jb1fO#-(zk12z}RrW{{r2ZoKn>_0PpCZuGTs^)Cq&bC=OBLDx6=
zthAG02?Ic_HDmCvD524M&7@1DWc<9X~&Q!s?r*cicX&ayM-B$n59bnY*`_-gT7NHYKzX@S+z({c=p5H0&ro
zRpMab(DZy8H+40q0kKyE8_~sEa_o>$?7;G^&H{qv8G6s6l1Q{6*UwP#onF=o%BV7m
zQe`Wpt^Hte8$>huA-Z~sJ~Qbr?AyX|4r-H}1Qto*OS}}*U?=~abd{RsS&O$wa0}5W
z!F5;C94wTk|L8LJ%P4w_BBSqCjB9DG(AQw%7wjYV>&D%)Wy9b#H0DW*hTne4Vrt;B$_ci?tpt
ztlOUo11%LXz=#0y76fEpKw<8qlxMJ<2G`i22
zrZfuJBlMLudl%mMCj@|_Gcfpr9r`yV%z9qv2R!<KA3+E|F_yys`dRV`bD=HW;`;Ov?^+5X`kn_Yz{T;5mh
zo77!I(Hi0c@O|)8AD}_lKqVa=c26MJ(I2?hOtCwe5uEv=SENjZ
zV#Z7|)k5pCNy`jB@GPI>!@1a2Ag978y70pv5`TVi6s+|@@n_T8VIon_
zy8Qh5613WTg*p`B5Vb`%HtZfntoOh;J5ppEh5scax91R^)B2pHD49o$p&p7LPs;xN
zXEqmGT~5c?eiuF6k(KMkN^;7gT-ztS=wQdnC&YR;5+#=<0Dqo%PdRezm(K!#PzV@4
z$ljRh?6hWurLD_{e2FmKNX^xL2Ej;vX9)72zHVOp8+3#uxHYHLL43QA67A+5{!#u5=gz+@jU`>gtJw~kN5&x-oDIbuInvMC~Y
ze6;mC4Mu0parRMQ^l$bD616=YasK1f&l
z_xOjtTYkqE2#R0l`Jf(*XA_Z*>W`G;>$g5k(IHF_xbad>sp(_tIoey^9b5Su74lk+ZO*
zoWI(W**)WNGW$l_f<&yu_ZNPPC(ir|gA)L4!KmD_d+u7cq?wFgK%P4JJVT-EUH=gO
z1~AqyXul%WVS>aSZ`CGcU_Bs`&UqL3WIt2*@w-Zd7ZC`7{3T}JNWc~&bpGP-LFHE9
zBkXEfc9}#{q+t`e4y!(*^SISxDNsdObUzxcsBtv{!8TGLNd8#<=;-J^^hl0|(ZK|KY?Y*}QYy6xCpxf@d$^dbHxG+|H^7rj(Cs%Ax
zc2@ZQVyr1G-QxroIh~-=nPpZ-%5p5vk`csyM4El`$V%*9QP)wRDmec(CF=9Se;WH!
zG)Y%)7Ae#5T-e_`@IBoJeYD>?K}E}PFu}b(fs?h}z@CTp?psCG&hKBGg?Ub;T$_7j
zWLBbD;UWy{ud>~dX@&6QRW+M``CJn|PCCnMXQ
zM4&3+2T6owC85uilj9@)9Cv0cuL5DnIPJN^h|iL;GH{Xr8mhFyk7sglp!Lh;lVDbpKJs^Op6dR>)T$TJ*8U{j+~`yOOo6j7VW?zLGC@N-?3;2D
z<)K3%aBN*u9PV7D%G6-gD8TLXsg;fxegU(M(ThTmttt7Gy`Ikf5~W4(`4H(pTuFA$
zPeiKXTrDS|L9>5~ZK-JBwh7YD_a=3;>Rwi4Xnv36vz*;O6ipS8?x`Bbgj^jjpMBXS;Cf{J5x>aRi1Ewz-W`cZED;xmKQhoYfEIx#b?_wZitq&7*4*<
z9N{-+@PbRTVD{Jf9(mJYM@IznwA`!S^g>N=O6C^h97sIY9z?6^06S1_N{*(&2D7&S
zRIY5whwsfuA^{_SOeCKo(oDnAp7}c6)7+2#P?Xa6ArE(4bDOI5V1@+L;yjS<4=9)T
zfPxVUFrZoV?&R`z1ExTTm&MH8lY_3I0Dzi+66*ZNa|V(V4a~E`{(FE(5-Lld|FlXy%;bg}1AoI0`hAup0P+~#tKZ1%fI5SFf@D~1Yre1%mOlsmEVV`PQ
z%dy%X6WFF}OFtM)neyvd9pZ}+N#J0VZD-ZiadvNmw93`ZlfuuyY=kwFuf@`Z)4;Nq4#too~|Ue5a888PB)r2LsbQof~9E*jyq(l?b=V4m$iZ*1~N1}ldf
zD{(wizXjfK-(cFjF2aN7vsfY=G^^9rFpl
z-Qa8>4YQ%lMGchaAsScyMIJDLk_$^PqGGrmKD|#(*;MgNQsi2`dk>%pKfQG;Yn@b1
z$w{}`qBkq!1!dPek#W8E=MvGtkJVl)*VbA*y46#m@G}&>6+d-rB#}RMPJ#2ejJyKD
z0)hhj;8A8h1tZjWDE-4GbB1e}QyK3|rooJtGqcMaKVuJkE^sAX>V@im#?Z!RTdQ*?
zJNB*p*>8d-2DH~7N&wPuGEGbDIefd|iPvxM*49-x%wDZ6gOcf$kv~yuk$WqSF9h4S
zt~~1Q!i$=B3j6BUmM;bSHoTE^(li*GtECSt!)z_!9{*IoB&BR-a5zf6YPG4)D9uHD
z=-wavU@76<(oS|4nz2Td`Gb8ma$&CSVWZaOMQUFiCH^a@$MI}UHI1fX!%=5$#xjmT
zIX@@zzhWNN)_Q;qpIeDT%gF&zyfSVvwnvOlIxhwj<}qW!`L5|UL!Ep^_{R9d6J%=JegkE72^d>k>Vvr?g`Igy@Rp=|
zDUX)l<6K)zOz`F>cMI)mlLc?01aip;iUrH1;5&zl>9xy*y2?QW04tQ$mL?#xmEIw5TZRL8wxusC
zUU0ismH}qVM|2nn=g~pkWq=-Mxyca+UWWyxM!oY!05QX?bNiWN+ZpMb_*4Pr0|LSI
zNM3svL-l8E`ziyEWL_~4&*9+A&n4|}mQBR(>=A$@hrn^TM{QcVX(ClB$FtE%j-o9~5Gx#+z{{8b$(+J^p)JpR
zp=GZDxWz+(tyaa=9PXK3o~ojZ1}{C!r~#c%#{{|`f|U+2X7swn1#@5PGpp%cC+{7i
zi2RHknB?n?oH@qJRIbw3#J>s$+}V$hDX&28{m@EC8$gAR~+%`$D%fbke;)2G8$EY|0s%jH>LpkQq*)(XIN
zpj2-ZPto9?D5EKfw~0I|P=3C`aAx08=|>_dnQRp+!mjyaB-p#8ya&i-q%+q*>H@M0
z63jA8&;dIcEUR2r2xgzUaAz$=!?rlkV$9TM(ax&h?)R8l=945HBHUV{rPj-gJ1p^c~
zPdcCZ+Ptripjf`R*?Xr8p4==8B$`mSzaF!3KBDqY3!JpT&qXlg~6Mt+#tAN;0Y;gI>N#qbPvd~0Y
zZZ@(xzzcF&m{xa(&lQ$@Sg9tlBC-Zvwv0!3;jQ7}r>|69{
z9D@rU3wl4%u$Wq3^3txdM@r}SyT4ivB}o*R%gdT62&8Eg-|RDHpL*Y0LhVqIzp9Et
zyTb9XPiozzxMv`@4ReK6fwV7%GtAFLP|>xuX`6K_Fnn0n%y!rvPVm{u4Wq4XMO2ju
zwH^3V_3$MZ|7n4=PSmb-FgMY{Z4i0l6^{Z;Ib}9!+f~!
zDrG4EIR)~Xf#hGpgU|LPkzR5GcDvpM>Vj77GdSGayYIzilL;Z@@1NeP^~|En+7~{i
zIIPweBKrLB3fdkiHoPt`C=b$tIY)wTRZ74T+2hB>t=R*b)cCKu2*5CdS*(r!sF;O&59FM_RYRRrvC
zoZ9NMUs|xgPcx=Nv(w&GSALtFQS=q4sz~+ljZb}f$KLh@=m=ywkIMI@kK(p_vIb2<
zSgGZ`Zy755=~1KJD@XXH6jC2u&6RVl>qgmk&S2eZ|JhZqA$;i=a_$vc*}DElFW{u+
zv7HYz4Q-3p)Vz4X#!$)Y0Iz92x(;C8q0oIpFqS=|409*xrwH{gX?FCg&L`{m5X}lN3i$9UaAz&}0{M48~Rk9lb
zwHb7XJsQkeXW?P{j1Tyl!-R0X{Gt-j=s}ChFV=bGtb_>9%V$Yi)l6D8H)>FVJNJpA
z@lL${RjsOnzVE(A>QM_lG_Kw*Rj6r6bya1&RA5uQVpL%61O_T&wM`i*i$NfR6z^g*
zib3sD>G84g=d31*6z;#Cds5gKu35zwPy
z)FTwCsq03?GT@eI8YHh&qNbJIPxRfwtMG~2*TdGi>(dwDHG_CAxvJVb9Jzeev~hC3
zp#e$^Q_kLO6cCLf4h0FAfxms|^X6JNjg4|j@LK|4P|3}%!6EoG+DV?d+zIS3+FQ=A
z%YcKC)Sgj~;%@l*s~>u6o3d7I-wR&{z>?rql6kp)NMnUG?_tV%}hf_q1V%1HT-$
zq(}`oQ~f5klu(UgC9C9mk-n~TO69ug@AeASbOM(Zh9xRPr)oREp`x`)*KY_!eqbP|
zwijZvbZMmZLp@|{K_NtnGMkwysVkBh7A>^k-kce&k~PFJ7uKNw=)U*<*3-%5I$JIT
zkUaV)to+lp7|gEZBHTm~d%S=rz?J;)V0qa7^mvy@+9OAc@@&a^Ic)r+E$QQ}0M)Ms
zv#!Bi5;%Xb{xI7-O7D%NZ$ZWTMw}NDku>4fm(@GNz}p!i>%7?oW$z+9|GB&hx3EPZ3U^OEo8_gE?BC
zH>8&1w2J7(XGGPXzyrWa3(3~D>1dtOG?7oK4O0RJS4&cIu~F)?y-6a-&owsNFV|n}
zLOAOyg#NW={>G0*lim^Wsd<$tZjDaLhdL3O5j}3??MAiE{`bQc~O>
zMQ8$HPguI#U3Y*8((DyPJp=Va5vMA0b~8CrdKnvAn?J!Gec}l5KIf$81XV8Zbo)=m
z%78MxuI(oS#e75xDM-74
zWXs#Z3>vwaH8@-hN3o4;y_(`Pc4
z5_dOa#*NmF`)AeiZb>>D^VS?E_l5S4r@sd|sbRvtLlGg2Ip~@ST76AWG?HXo`IVj%
z3l!p2Y&9x>@Q+@gzEGZwf%*RRj=e#TKvFB3Tz1V%Q;KEJ25waBFQzhg9WNPpnnZnp
zr9W?AG4Aq282!3`#4ERII~oX?U_$w`YaRUF<4L{_nrJT_(@Dv=BLoEMpnX~w<`9n&
zBun$1;sbMcA<#YtH4A$LlEZ2M4f*Dh*K-(Keh~|`gP<%f8N=MZL1c*e#=-eG(P0lD
zA&&jv0Jh*?ELxzyGH)^?0uPOvAqq#>Ku>_}N5>8f;2io$jp)a5zBE%R
z0ou`Ag7800GXnRjveAgYa$o^30WK)Ml70NdvTN82W|)WRdY^QC8*ERqE{B8saHhm;
zOdlyBc8@V^5@G{uXkO$0NF^q;$a(oi0oMZjB$RkDM*JIL|Fdc0#|Y4do&$wjO{+%v
z%bF26a>jHcvYz=NH)akZ6~%QIyq5V~X4D%Lk8)=q+Ah4hqTg+zFXe$zujvp5>LE)}
zpc;v9dEV2bJnIs{)2TBboFO1!m^TB)`_O-c|12J!ir&1rU7E>4@6TRjeY*@dcD!V5
z7TQU#D_8!N;H};wv@hvbBd^@Rr-@ACiA66iTBNYEBx&o4Om)du@Exgf=6|ly@
z7WZi}wA#H$+J&%&C|y?J&t(3y+4srj9H2pMh-FSJPI@ZSI4f{iabpEES^!!Bm^k8!
zexM{uPZX|zwUsEBZt{r{Qynf=@#j@WUV^!SN=^wnp~=2+1>m{Vn^qLDV&>!jn=T%o
z3<;N_FYTwTd1h0;ZPu(8`bStb1~l3L&&bKnBG!LI7ws}Q=gZoV`J|m5i6q83iOlT+
zRS?_xryJ!{JPh^)gON1jidaEB{8Vf$ES4mv2cMd*T+&~?&oevcLtQXaNT{m3PM6H{
zW5WqJ8%io(jk@lOYDROa_f`V%aJV*K^`=bf)aIo;7kDNm>d#11!cmA=%wFTNoi$50~svG`1wTRnhU8Q4^>4_DhG
z1og5()8=Q%n+;}a$_#UJg90vbeYMKhI}*gP=vh6pJju$SF-XSF6ZB3puOjg;Ij%e)
zD7g8^sE{vWUh9J%n&^hRT|kUu7{`}Edg*{aWj@Lwxh{oi+(j)dAs{&&A2fuBOf~{<
zH1LSzgBHR#bv>e)oMR=9K!RpWSiEtXl3oV4q{V2+#UB6N&AWp3LcDvMlss_aNJ1^V
ztBCzge-?ZTYgM&j4CrA61VIt$0i?ZHxPTR(v;G;Qds5y=7&$i_9Fi66djWvG4dUEf
z`tKSzV|DtF0a+i=Dmo1KSdDM`Hy~_7OgqC?q>jC%I8;g9UDwaN$zocZEn){^foFCd
zc(xKh5aPhOc!pMissri65GJ~t7q0T1
zxDdAyiSh&-`L%vm-D8!Ryx?-wa?Y3sEza%Sk1Bem0CfDp&;YF$|Eo)QoGAWt&X4z|!pz`v
zK+m*e$j{dp9xKuL17FlYt1K|ngizYmM3_GVHnGwDM^dEwaJ$`)0Aq5+Rg97kL7zLMYy=;DK!YG9pm
z@%x}(#q_X}d5+@O$k*|;&@TMOl6}f=yK)1VVU`lGf4}D7y)Rh3cvl51_|q#<&K12=
zH&KbCXy7{?VDDvr@c#ptdPwb>3Mkn?KOK~CD`ia`bMt!D2*qWSOL4nX8w&VrBvYXDxZHwg5=5%L`H
zGre21lrprmD-*LY;@#=U6xcS|K&u_hq*l5v=s?+f0OX0pvKB{|TK&r=K&-BnSG#Iu
zDAV5QiHWJ=fbRH10Crb~m;RcC;cx-mt{zJdxbh_OJ~7pf$5nICNcb8#G;m>+D$w?u^#ebjUV>^+h*j@ci6>H;B`?4*+gCi}2c(@qFC6(o0J><#ujq?l
z2K;k#EmzuESM&ebtJ7V;C7Qf38xdYWNxQ=S3!EP+ssljjz`8)ZAo(bgRMJuX-^TL+
zJq$iw>yS=V-FnG$egX9B;|$Y+!&wAE3)3izLiEK-aLtPtQy-Y#r%N$YGzmmrN-#Fy
zGzDfMSRqp|-iOZu+K-{^pdm|KB8UuhJZ+ywf9>ZB^lg8UAK(NqLZhf4Fsxp8b)Lnl
z7psAj#bR?&xh)5d=bObZf&9+AXuo#=%ecy-WxR>T1qLx5{NI-c;NZNoG;dG=jjf;s
z+~j}16b=M@SVMK-|FbVVJh|;@fiH7`Gy2kg!RUrB4hI(vlnXeCXP9tsRPe}f{_*|@
wa2-+|@Nh=dD{ycuz=8w!8WjZi|7$LzqqItXS9qKB8a54SaRsq*5u?EW0T9?{lK=n!
literal 0
HcmV?d00001
diff --git a/src/components/Support/support-additional.js b/src/components/Support/support-additional.js
new file mode 100644
index 000000000000..17ef3d34340e
--- /dev/null
+++ b/src/components/Support/support-additional.js
@@ -0,0 +1,38 @@
+export default [
+ {
+ name: "MoonMail",
+ avatar: "https://static.moonmail.io/moonmail-logo.svg",
+ website: "https://moonmail.io/?utm_source=webpack.js.org",
+ totalDonations: 11000,
+ reason: "Paypal"
+ },
+ {
+ name: "Google Angular",
+ avatar: "https://res.cloudinary.com/opencollective/image/upload/v1485288529/angular_uxllte.png",
+ website: "https://angular.io/?utm_source=webpack&utm_medium=documentation&utm_campaign=sponsorship",
+ totalDonations: 250000,
+ reason: "Paypal"
+ },
+ {
+ name: "Architects.io",
+ avatar: null,
+ website: "http://architects.io/?utm_source=webpack&utm_medium=documentation&utm_campaign=sponsorship",
+ totalDonations: 30000,
+ reason: "Paypal"
+ },
+ {
+ username: "peerigon",
+ name: "Peerigon",
+ avatar: "https://opencollective-production.s3-us-west-1.amazonaws.com/e8a1de10-99c8-11e6-8650-f92e594d5de8.png",
+ website: "https://peerigon.com/?utm_source=webpack&utm_medium=documentation&utm_campaign=sponsorship",
+ totalDonations: 144139,
+ reason: "webpack meetup 2017-07"
+ },
+ {
+ name: "Segment",
+ avatar: require("./assets/segment-logo.png"),
+ website: "https://segment.com/?utm_source=webpack&utm_medium=documentation&utm_campaign=sponsorship",
+ totalDonations: 2400000,
+ reason: "Sponsorship 2017-07 - 2017-09"
+ }
+];
diff --git a/src/components/Support/support-additional.json b/src/components/Support/support-additional.json
index b4f5ffcefcaf..e69de29bb2d1 100755
--- a/src/components/Support/support-additional.json
+++ b/src/components/Support/support-additional.json
@@ -1,23 +0,0 @@
-[
- {
- "name": "MoonMail",
- "tier": "sponsor",
- "avatar": "https://static.moonmail.io/moonmail-logo.svg",
- "website": "https://moonmail.io/?utm_source=webpack.js.org",
- "totalDonations": 11000
- },
- {
- "name": "Google Angular",
- "tier": "sponsor",
- "avatar": "https://res.cloudinary.com/opencollective/image/upload/v1485288529/angular_uxllte.png",
- "website": "https://angular.io/",
- "totalDonations": 250000
- },
- {
- "name": "Architects.io",
- "tier": "sponsor",
- "avatar": null,
- "website": "http://architects.io/",
- "totalDonations": 30000
- }
-]
diff --git a/src/content/about.md b/src/content/about.md
index 85cf1a4c49ee..199a91f9d484 100755
--- a/src/content/about.md
+++ b/src/content/about.md
@@ -3,6 +3,7 @@ title: 参与翻译的全体成员
contributors:
- akira-cn
- Aladdin-ADD
+ - AlenQi
- beiciye
- billie66
- biqing
@@ -26,14 +27,17 @@ contributors:
- lgh06
- lizhonghui
- lmymoonsky
+ - lukastong
- mc-zone
- neal1991
- nick-nick
- panlinying
+ - QC-L
- rqzheng2015
- scq000
- ShiHaoLin
- shisaq
+ - SimonLeeee
- starkwang
- superpig
- tao1991123
diff --git a/src/content/api/cli.md b/src/content/api/cli.md
index 8a27ad8f0c84..63279844eddd 100755
--- a/src/content/api/cli.md
+++ b/src/content/api/cli.md
@@ -130,14 +130,17 @@ webpack --env.platform=web # 设置 env.platform == "web"
`--env` 参数具有多种语法 accepts various syntaxes:
-Invocation | Resulting environment
-------------------------------- | ---------------------------
-`webpack --env prod` | `"prod"`
-`webpack --env.prod` | `{ prod: true }`
-`webpack --env.prod=1` | `{ prod: 1 }`
-`webpack --env.prod=foo` | `{ prod: "foo" }`
-`webpack --env.prod --env.min` | `{ prod: true, min: true }`
-`webpack --env.prod --env min` | `[{ prod: true }, "min"]`
+Invocation | Resulting environment
+---------------------------------------- | ---------------------------
+`webpack --env prod` | `"prod"`
+`webpack --env.prod` | `{ prod: true }`
+`webpack --env.prod=1` | `{ prod: 1 }`
+`webpack --env.prod=foo` | `{ prod: "foo" }`
+`webpack --env.prod --env.min` | `{ prod: true, min: true }`
+`webpack --env.prod --env min` | `[{ prod: true }, "min"]`
+`webpack --env.prod=foo --env.prod=bar` | `{prod: [ "foo", "bar" ]}`
+
+T> See the [environment variables](/guides/environment-variables) guide for more information on its usage.
### 输出配置
@@ -292,7 +295,7 @@ webpack.js index=./src/index.js index2=./src/index2.js --output-path='./dist' --
简写 | 含义
---------|----------------------------
--d | `--debug --devtool cheap-module-source-map --output-pathinfo`
+-d | `--debug --devtool cheap-module-eval-source-map --output-pathinfo`
-p | `--optimize-minimize --define process.env.NODE_ENV="production"`, see [building for production](/guides/production)
diff --git a/src/content/api/node.md b/src/content/api/node.md
index a6c8bfe54604..5bd7c7a3c369 100755
--- a/src/content/api/node.md
+++ b/src/content/api/node.md
@@ -70,6 +70,8 @@ T> webpack **不**会并行执行多个配置。每个配置只会在前一个
* `.run(callback)`
* `.watch(watchOptions, handler)`
+W> The API only supports a single concurrent compilation at a time. When using `run`, wait for it to finish before calling `run` or `watch` again. When using `watch`, call `close` and wait for it to finish before calling `run` or `watch` again. Concurrent compilations will corrupt the output files.
+
## 执行(Run)
diff --git a/src/content/api/plugins/compiler.md b/src/content/api/plugins/compiler.md
index 4e9f3da47f11..f20b6d2808ec 100755
--- a/src/content/api/plugins/compiler.md
+++ b/src/content/api/plugins/compiler.md
@@ -27,7 +27,7 @@ compiler.options = {...};
class LogPlugin {
apply (compiler) {
compiler.plugin('should-emit', compilation => {
- console.log('should i emit?');
+ console.log('should I emit?');
return true;
})
}
diff --git a/src/content/configuration/configuration-languages.md b/src/content/configuration/configuration-languages.md
index c6bd92faaa9d..8a0a9b714573 100755
--- a/src/content/configuration/configuration-languages.md
+++ b/src/content/configuration/configuration-languages.md
@@ -6,6 +6,7 @@ contributors:
- skipjack
- tarang9211
- simon04
+ - peterblazejewicz
---
webpack 接受以多种编程和数据语言编写的配置文件。支持的文件扩展名列表,可以在 [node-interpret](https://github.com/js-cli/js-interpret) 包中找到。使用 [node-interpret](https://github.com/js-cli/js-interpret),webpack 可以处理许多不同类型的配置文件。
@@ -26,7 +27,6 @@ __webpack.config.ts__
```typescript
import * as webpack from 'webpack';
import * as path from 'path';
-declare var __dirname;
const config: webpack.Configuration = {
entry: './foo.js',
diff --git a/src/content/configuration/module.md b/src/content/configuration/module.md
index ffc64951d66a..9a73e2f418a4 100755
--- a/src/content/configuration/module.md
+++ b/src/content/configuration/module.md
@@ -92,7 +92,7 @@ W> 小心!resource 是文件的_解析_路径,这意味着符号链接的资
还有一个额外的种类"行内 loader",loader 被应用在 import/require 行内。
-所有 loader 通过 `后置, 行内, 普通, 前置` 排序,并按此顺序使用。
+所有 loader 通过 `前置, 行内, 普通, 后置` 排序,并按此顺序使用。
所有普通 loader 可以通过在请求中加上 `!` 前缀来忽略(覆盖)。
diff --git a/src/content/configuration/output.md b/src/content/configuration/output.md
index bdf7c6535789..4a9a99a8e790 100755
--- a/src/content/configuration/output.md
+++ b/src/content/configuration/output.md
@@ -18,7 +18,7 @@ contributors:
`string` `object`
-在和 [`output.library`](#output-library) 和 [`output.libraryTarget`](#output-librarytarget) 一起使用时,此选项允许用户向导出容器(export wrapper)中插入注释。要为 `libraryTarget` 每种类型都插入相同的注释,只需将 `auxiliaryComment` 设置为一个字符串:
+在和 [`output.library`](#output-library) 和 [`output.libraryTarget`](#output-librarytarget) 一起使用时,此选项允许用户向导出容器(export wrapper)中插入注释。要为 `libraryTarget` 每种类型都插入相同的注释,将 `auxiliaryComment` 设置为一个字符串:
``` js
output: {
@@ -293,15 +293,15 @@ JSONP 函数用于异步加载(async load) chunk,或者拼接多个初始 chun
`string` 或 `object`(从 webpack 3.1.0 开始;用于 `libraryTarget: "umd"`)
-在编写一个导出值的 JavaScript library 时,可以使用下面的 `library` 和 `libraryTarget`,导出值可以作为其他代码的依赖。传入 library 名称的字符串:
+`output.library` 的值的作用,取决于[`output.libraryTarget`](#output-librarytarget) 选项的值;完整的详细信息请查阅该章节。注意,`output.libraryTarget` 的默认选项是 `var`,所以如果使用以下配置选项:
-``` js
-library: "MyLibrary"
+```javascript
+output: {
+ library: "MyLibrary"
+}
```
-library 名称取决于 [`output.libraryTarget`](#output-librarytarget) 选项的值。
-
-注意,`output.libraryTarget` 的默认值是 var。这意味着,如果使用 `output.libraryTarget` 的默认值,`output.library` 会将值作为变量声明导出(当使用 script 标签时,其执行后在全局作用域可用)。
+如果生成的输出文件,是在 HTML 页面中作为一个 script 标签引入,则变量 `MyLibrary` 将与入口文件的返回值绑定。
有关 `output.library` 以及 `output.libraryTarget` 详细信息,请查看[创建 library 指南](/guides/author-libraries)。
@@ -325,117 +325,135 @@ The following configurations are supported:
```javascript
// if your entry has a default export of `MyDefaultModule`
var MyDefaultModule = _entry_return_.default;
-
-// your users will use your library like:
-MyDefaultModule.doSomething();
```
`libraryExport: "MyModule"` - The **specified module** will be assigned to the library target:
```javascript
-// if your entry exports a module `MyModule`
var MyModule = _entry_return_.MyModule;
-
-// your users will use your library like:
-MyModule.doSomething();
```
`libraryExport: ["MyModule", "MySubModule"]` - The array is interpreted as a **path to a module** to be assigned to the library target:
```javascript
-// if your entry exports `MyModule` which in turn exports `MySubModule`
var MySubModule = _entry_return_.MyModule.MySubModule;
+```
+如同以上示例中所展示,入口起点的返回值,与这些具名变量绑定在一起,因此,生成的 library 的用法如下:
+
+```javascript
+MyDefaultModule.doSomething();
+MyModule.doSomething();
MySubModule.doSomething();
```
-
## `output.libraryTarget`
`string`
> 默认值: `"var"`
-配置如何暴露 library。可以使用下面的选项中的任意一个。
+配置如何暴露 library。可以使用下面的选项中的任意一个。注意,此选项与分配给 [`output.library`](#output-library) 的值一同使用。对于下面的所有示例,都假定将 `output.library` 的值配置为 `MyLibrary`。
-支持以下选项:
+T> 注意,下面的示例代码中的 `_entry_return_` 是入口起点返回的值。在 bundle 本身中,它是从入口起点、由 webpack 生成的函数的输出结果。
+
+### 暴露为一个变量
+
+这些选项将入口起点的返回值(例如,入口起点的任何导出值),在 bundle 包所引入的位置,赋值给 output.library 提供的变量名。
`libraryTarget: "var"` - (默认值)当 library 加载完成,**入口起点的返回值**将分配给一个变量:
```javascript
var MyLibrary = _entry_return_;
-// 使用者将会这样调用你的 library:
+// 在一个单独的 script……
MyLibrary.doSomething();
```
-W> (不指定 `output.library` 将取消这个 `"var"` 配置)
+W> 当使用此选项时,将 `output.library` 设置为空,会因为没有变量导致无法赋值。
+
+
+`libraryTarget: "assign"` - 这将产生一个隐含的全局变量,可能会潜在地重新分配到全局中已存在的值(谨慎使用)。.
+
+``` javascript
+MyLibrary = _entry_return_;
+```
+
+注意,如果 `MyLibrary` 在作用域中未在前面代码进行定义,则你的 library 将被设置在全局作用域内。
+
+W> 当使用此选项时,将 `output.library` 设置为空,将产生一个破损的输出 bundle。
+
+
+### 通过在对象上赋值暴露
+
+这些选项将入口起点的返回值(例如,入口起点的任何导出值)赋值给一个特定对象的属性(此名称由 `output.library` 定义)下。
+
+如果 `output.library` 未赋值为一个非空字符串,则默认行为是,将入口起点返回的所有属性都赋值给一个对象(此对象由 `output.libraryTarget` 特定),通过如下代码片段:
+
+```javascript
+(function(e, a) { for(var i in a) e[i] = a[i]; }(${output.libraryTarget}, _entry_return_)
+```
+W> 注意,不设置 `output.library` 将导致由入口起点返回的所有属性,都会被赋值给给定的对象;这里并不会检查现有的属性名是否存在。
-`libraryTarget: "this"` - 当 library 加载完成,**入口起点的返回值**将分配给 this,`this` 的含义取决于你:
+`libraryTarget: "this"` - **入口起点的返回值**将分配给 this 的一个属性(此名称由 `output.library` 定义)下,`this` 的含义取决于你:
```javascript
this["MyLibrary"] = _entry_return_;
-// 使用者将会这样调用你的 library:
+// 在一个单独的 script……
this.MyLibrary.doSomething();
-MyLibrary.doSomething(); //如果 this 是 window
+MyLibrary.doSomething(); // 如果 this 是 window
```
+`libraryTarget: "window"` - **入口起点的返回值**将使用 `output.library` 中定义的值,分配给 `window` 对象的这个属性下。
-`libraryTarget: "window"` - 当 library 加载完成,**入口起点的返回值**将分配给 `window` 对象。
-
- ```javascript
- window["MyLibrary"] = _entry_return_;
+```javascript
+window["MyLibrary"] = _entry_return_;
-// 使用者将会这样调用你的 library:
window.MyLibrary.doSomething();
- ```
+```
-`libraryTarget: "global"` - 当 library 加载完成,**入口起点的返回值**将分配给 `global` 对象。
+`libraryTarget: "global"` - **入口起点的返回值**将使用 `output.library` 中定义的值,分配给 `global` 对象的这个属性下。
- ```javascript
- global["MyLibrary"] = _entry_return_;
+```javascript
+global["MyLibrary"] = _entry_return_;
-// 使用者将会这样调用你的 library:
global.MyLibrary.doSomething();
- ```
+```
-`libraryTarget: "commonjs"` - 当 library 加载完成,**入口起点的返回值**将分配给 exports 对象。这个名称也意味着模块用于 CommonJS 环境:
+`libraryTarget: "commonjs"` - **入口起点的返回值**将使用 `output.library` 中定义的值,分配给 exports 对象。这个名称也意味着,模块用于 CommonJS 环境:
```javascript
exports["MyLibrary"] = _entry_return_;
-// 使用者将会这样调用你的 library:
require("MyLibrary").doSomething();
```
+### 模块定义系统
+
+这些选项将导致 bundle 带有更完整的模块头部,以确保与各种模块系统的兼容性。根据 `output.libraryTarget` 选项不同,`output.library` 选项将具有不同的含义。
-`libraryTarget: "commonjs2"` - 当 library 加载完成,**入口起点的返回值**将分配给 exports 对象。这个名称也意味着模块用于 CommonJS 环境:
+
+`libraryTarget: "commonjs2"` - **入口起点的返回值**将分配给 `module.exports` 对象。这个名称也意味着模块用于 CommonJS 环境:
```javascript
module.exports = _entry_return_;
-// 使用者将会这样调用你的 library:
require("MyLibrary").doSomething();
```
-T> 想要弄清楚 CommonJS 和 CommonJS2 之间的区别?查看[这里](https://github.com/webpack/webpack/issues/1114)(它们之间非常相似)。
+注意,`output.library` 会被省略,因此对于此特定的 `output.libraryTarget`,无需再设置 `output.library` 。
-`libraryTarget: "amd"` - webpack 将你的 library 转为 AMD 模块。
+T> 想要弄清楚 CommonJS 和 CommonJS2 之间的区别?虽然它们很相似,但二者之间存在一些微妙的差异,这通常与 webpack 上下文没有关联。(更多详细信息,请[阅读此 issue](https://github.com/webpack/webpack/issues/1114)。)
-注意,入口 chunk 必须使用 `define` 属性定义,如果不是,webpack 将创建无依赖的 AMD 模块。输出结果就像这样:
-```javascript
-define([], function() {
- // 这个模块会返回你的入口 chunk 所返回的
-});
-```
+`libraryTarget: "amd"` - 将你的 library 暴露为 AMD 模块。
-如果你下载完这个 script,首先你可能收到一个错误:`define is not defined`,就是这样!如果你使用 AMD 来发布你的 library,那么使用者需要使用 RequireJS 来加载它。只要你已经加载过 RequireJS,你就能够加载 library。
+AMD 模块要求入口 chunk(例如使用 `
+
+
+
+
+