00:00
好的,那经过刚刚的课程呢,我们已经把这个winpe啊,初步就已经配置完了,但是真正到了我们的实际开发中呢,这样还不够啊,我们还需要在向webpa当中引入一个这个插件,那说是插件的话,其实也不完全准确,因为待会儿我们要说的工具,它实际上也是一个单独的一个打包工具,那只不过它和TS一样,它可以结合它web web派呢一起去使用,替我们去完成一些工作,什么样的工作呢?诶,其实他的这个工作的话,有一部分和我们这个TS有点像,就是我们在写代码的时候,我们ES有不同的标准,哎,有ES6啊,ES5啊,ES3,还有ES,哎2016 2017,甚至我们现在最新的2020啊,马上明年的可能就是22021这些版本,那我们写的时候,比如说我是用最新的ES2020的版本去写的,但是呢,我们的代码可能需要运行到IE。
01:01
里,那这个时候就产生一个兼容性的问题,为什么呢?因为IE浏览器它不支持这些我最新的一个ES的一个呃标准,那它怎么才能执行呢?所以我们就必须在写完代码以后把它转换成旧版的,诶比如说可能转换成ES5的,那这样它在IE里边也可以正常的去执行,那这个功能的话,其实我们的TS也有,对吧,TS写完代码,我们不是有一个那个target那个那个选项,我们一配置target是不是就可以去指定我们这个,诶TS代码编译的一个版本,哎,那这个功能跟TS是一样的,但是呢,还有一些功能是TS里不具备的,哎,就是我想我们刚才说的那些转换,TS里能做的转换,简单的它只能是做一些语法的转换,哎,我把这个语法替换成那样的语法,但是对于一些诶一些复杂一些的功能,比如说我们ES里,ES6里边新增的一些技术。
02:01
像什么这个,诶像什么这个诶promise,像这些东西,这些东西我们刚通过光光仅仅通过这个语法的转换,实际上它是转不过去的,那这个东西,那我们就需要用到我们这个工具去解决,这个工具叫什么呢?就叫做哎,Bbible Bible,就这么一个工具可以,它的作用主要就这么几个干嘛呢?第一个它可以把我们这个新语法转换成什么呢?诶旧语法,第二一个它可以把我们的一些诶新的技术,其实就是一些新的类啊,新的对象在旧浏览器里不支持的,它可以通过一些方式让它支持,就这么一个作用很简单,所以为了让我们的代码有一个更好的一个兼容性啊,更好的一个这个使用的一个,诶就是广度,对吧,可以在不同的浏览器当中同时去使用,那这里面我们其实在开发的时候,我们必须要安装一个什么呢?诶,Bible来帮助我们去解决这个兼容器问题。
03:01
那Bible也是我们需要和我们的webpa呢一起结合起来一起使用,所以在这儿我们还是先来说一下它的使用流程,使用流程都是一个套路,诶就两步,第一步下载安装,诶装我们这些依赖啊,第二步来做这个配置就齐活了,那我就直接执行了啊CNPM,诶,哎还是的都是我们的这个开发依赖,所以是杠大跌,我们这一共装这么几个包,第一个我们叫babm Bible,诶babl Bible我们叫做一个扣,这个是我们Bible的一个核心的一个工具啊,核心工具装的时候注意啊,跟我打的一样的,它是艾特开头的啊,然后呢,我们还有叫做艾特啊bab Bible叫做pres。Pres set叫做一个env,嗯,Pres set叫预预制的啊,Set叫设置嘛,Pre叫预先,预先设置的,Env叫environment,叫做环境,预先设置了环境,这是干嘛的?因为我们说了啊,我们写这个代码,我们可能需要兼容不同浏览器,可能兼容IE可能兼容,可是我们可能兼容火狐可能兼容等等等各种各样不同浏览器,那在我们的这个呃,Pres environment里面,它就给我们预制了不同的环境啊,你是什么环境,我就给你转换成什么样的代码,在这里边它都给我们定义好了,所以我们必须要装一个它,才能使得我们的这个代码可以兼容到不同的浏览器,然后下边一个叫做BA BL Bible的一个loader loader都没得说了,所有的你看到什么什么loader了,它都是属于是把我们这个Bible和webpa做一个结合的这么一个工具啊工具,还有最后一个我们叫做一个扣GS,扣GS是什么?扣GS像我们说啊,它是。
04:48
一个GS的一个运行环环境,或者说它是一个模拟GS运行环境的一个代码,它的好处就是什么,它的作用就是可以啊让我们的这个,呃,这个老版本的浏览器用到新版本的这个新标准的一些这个技术就是要扣GS,也就是说我不用你那个浏览器的环境了,我给你提供一个新的,那这样你就会有一个比较好的一个兼容性啊,但是QGS的话,本身它实际上包含的东西比较多,我们用的时候,我们不需要把整个它都加载进来,所以待会儿我们会说在这个Bible里边会有一个配置选项,它可以让我们按需去加载啊,按需加载好这就写完了啊,写完了然后在这儿我们直接一回车,诶让他去安装这些,诶这些包,那我们先呀,还是打开这个package,杰森,我们来看一下这些包啊,能不能装上。
05:37
诶,先确保这个包装的没问题了,然后的话我们再去写这个配置,OK,没有报错,然后看一下我们配置文件这些依赖呢,我看看啊有没有加进来,哎呀哎呀呀。依赖的话,我看一下吧。依赖,貌似你看我这些依赖是不是真的没有进来呀,没有进来没关系啊,诶他可能就是有点慢是吧,刚说话的功夫这几个是不是就进来了,诶Bible code Bible,诶pro pre environment,还有Bible load,还有扣GS都进来了啊进来以后来改我们的配置文件web con.js,那改我们这webpa con.js啊改配置文件还是我们这是新加了一个插件,其实不叫插件,在里边加了一个加载器,加了一个新的loader,所以我们要改的话,其实就改我们这个modu module,而我们这个加载器的话,也是要对我们的这个什么呀,哎,对这个test去生效的啊,对对我们这个TS文件去生效的,所以我们这个加载器我不需要再新加一个规则,我们直接在这个什么呢,在这儿来配置行了,换句话说,之前我们这个TS文件我只用一个加载器,现在呢,哎,我用两个,一个是ts loader,还有一个就是我们刚才说的那个,诶。
06:58
那个Bible的一个loader,所以在这儿的话,我把右字改成一个中号,改成一个什么呀?诶数组什么目的呢?诶就是告诉你我要用两个加载器,那我把这个ts log呢写在后边,为什么写在后边呢?因为我们这个加载器的执行顺序的话,它是从前往从后往前执行,因为谁写在后边谁先执行,所以我们需要的是什么?诶你先用ts louder把我们的这个TS代码转换成GS,然后再用这个Bible把这个GS新版本的GS转换成我们的这个旧版的这个JS,就这么一个作用,所以先把这个ts loader放在下边,然后在上边我们再写什么呢?再写我们这个Bible loader,那如果说你说老师,我这如果就想整一个加载器,那实际上如果你就写一个加载器的话,如果你简单写的话,那你就可以直接写一个babl Bible,那这样它就会接就只包含这么一个加载器,但是我们用Bible的时候,实际上Bible它包含着一些稍微。
07:58
就有一点点,那么哎,复杂的一些配置信息,所以这个加载器我们写的要复杂一点,为什么要复杂一点呢?因为我要在它里边写一些配置信息啊,配置信息,所以在这儿我们写一个对象,这个是干嘛呢?这个是来配置我们这个Bible,配置我们这个Bible,那首先我们先指定我们要用的加载器啊,指定我们这个加载器。
08:22
加载器,我们直接来一个。Loader的话,我们在这儿肯定是用的,就是我们刚才整的那个bab Bible,一个loader,那其实啊,这两种配置方法在我们onepe里都是对的啊,这个呢是复杂一些的,就是它可以做更多的配置,这个是简化版啊,简化版所以我们真正用的时候就根据你的实际需要,你的配置选项多,那你就用这个复杂的配置选项少,就用这个麻烦啊,根据实际情况去选择,然后再往下我们再写的话,就是来配置我们这个了,Bible。诶,设置我们这个Bible Bible,你说老师Bible要设置设置什么东西啊,诶刚才我们说了我们这个Bible,它是不是有这个兼容性的问题啊,诶我们要设置什么呢?设置我们这个Bible要兼容的一个浏览器,所以我们需要设置的是我们这个预制的一个环境啊,预定义的一个环境,也就是你要先假设一下你的这个,你的你的这个什么呀,你的这个,诶你的这个代码要在哪些浏览器当中去运行啊,去运行,那这里边我们来看一下啊,看一下什么呢?看一下我们先写一个叫做一个pre,诶pre啊preise在这儿,我们来指定我们这个预定义的环境,这也是一个中号,然后它里边再写一个中文号,这是我们的第一个环境,其实就一个环境啊,在这里边首先来指定我们的环境插件,指定我们环境的插件,这个插件是谁呢?就是我们刚才下的那个艾特一个bab下边的一个pre。
09:57
一个这个env,这个就是刚才我们下那环境,这个你要忘了啊,我们刚才下的时候package,这是不是指定了B一个这个环境,你给它配置到这儿就行了啊,这直接来一个逗号,这是我们用的插件啊,指定的插件,然后下边是我们的配置信息,配置信息都包含什么?配置信息首先整体是一个对象包含什么?第一个选项我们叫做一个targets啊targets target。
10:24
GS叫t target啥意思?诶,就是我的代码要运行,要运行在哪个浏览器里啊,哎,哪个浏览器里,所以target这里边我们要指定的是我们浏览器的一个什么呢?诶浏览器的一个版本,比如说我要求我的代码是要运行在Chrome里啊,Chrome里啊,Chrome里你就写Chrome,那Chrome的什么版本呢?那比如说我写一个Chrome的一个88这个版本,那这样就表示说我的这个浏览器需要兼容到谁呢?兼容到我的这个Chrome,诶88啊,兼容到88,所以这个就是我的第一个这个兼容的一个,诶版本就这样一个设置,然后再往下的话,我们先写一个啊,先写一个,再往下的话,我们这儿还需要再往下写,写个什么呢?诶我们直接来写一个,这个叫做诶叫做一个扣GS。
11:17
扣GS,扣GS什么意思?扣GS刚才我们不是下载那个了吗?就是说我这个GS我整完了以后,诶我要诶用哪个版本的扣GS,我们刚才下的这个扣GS是不是一个3.8.0啊,你看三点版本的,那就直接写个三,你说我是四版本的,你就写四,你是二版本就写写二就行了,但是现在最新就是三,我们写三就OK了啊扣GS这个是啊,这个是它的意思,就写一下注释啊,写一下注释。Targets。是我们这个要兼容的目标的问题。哎,然后这个QGS是指定什么呢?指定我们这个QGS的版本。
12:05
版本啊,然后的话还有一个谁呢?还有一个我们叫做一个这个叫做一个这个build,诶billt build ins啊build in啊,Build ins,那这个就是什么意思呢?就是我们这个,哎使用这个扣GS的方法,哎使用我们这个扣GS的方式,这我就简单说了啊,我们一般的话,我愿我更习惯使用的一个选项叫做一个usage。Usage usage表示什么意思呢?叫做按需加载。表示按需加载,哎,因为我们在这个QGS当中,它给我们提供了很多的这个功能,什么功能呢?就是可以让我们这些代码呢,诶兼容我们这个老版本的浏览器,但是的话,它实际上我们新功能有很多很多,那我用不用说把所有的功能一下子都引入呢,诶如可以那么做,但是那样的话其实稍微有点占内存空间,因为好多功能你用不上,用不上它还给你去处理,兼容的话,它会影响到你这个文件的大小没,就是性能上会稍微的有些影响,而这个uage表示按需加载,诶你用哪个了,我就给你处理哪个,如果你哪个都没用,我就啥都不处理,那就可以确保我们这个文件会有一个,诶最小的一个大小,那现在的话,我们这个配置的话,基本上就就就这么一个效果了,就已经配置完毕了啊,配置完毕了,那这里边的话,我们现在呢,这个兼容的浏览器呢,比较的版本比较高,兼容到这个chromes的88,那这个时候你在真正用的时候,你可以自己根据你的需要去选择啊,需要去选择。
13:44
那现在的话,我们先来看一下什么效果,那我们先看看吧,我们这个index.ts现在这个这个是我们index.ts这个是我们主文件编译后的文件呢,在哪呢?在这个Dis下,我们这个帮豆点TS,它是这样去编译的,这个是不是我们这个里边的代码啊,诶里边代码那这样啊,我们呢,先做一个小实验,我把我这些呀,就这个东西这一套。
14:09
这个不是我的这个。诶,这个叫bibleloder指定的吗?我先给他注了,也就是说我先不用这个bibleloder,然后在这儿呢,我随便写点东西啊,写点东西我来一个light,一个这个定一个变量吧,我直接来一个cost,一个obj,等于一个大块,我们来一个name,来一个这个孙悟空。然后呢,在这儿我们来一个OB接点,一个log,然后在这儿OB接点一个H等于一个18,然后再来一个OB接点log,也就是我整一个对象,现在我主要看的是谁呢?我这儿声明这个变量的时候,我用的是,然后我们这儿执行一个n PM run,一个build,对它进行重新构建,我要看一下它给我构建后的版本什么,哎呀,报错了,我们看一下啊,报错了。啊,这个配置文件的第58行应该是刚才我注的时候啊,应该是少注什么东西了,58行没毛病啊。
15:07
柚子啊,我住大发了,我是不是把柚子整个都给住了,哎,我这个柚子的话,应该是住到这个位置啊,这个位置好,我们重新来再执行一下。Yeah。Exclude。哎呀,那这样吧,我先把这一堆啊,咱们一不做二不休,我先给它干嘛呢,我先给它删掉啊,删掉以后我们再看它这个效果。啊,这少一逗号啊,这个还不是赖他,我这还看错了,这前边是不是一个属性,后边一个属性啊,落了一个逗号啊,把这逗号给它加上,再重新构建一下,所以你们写这种东西的时候一定注意啊,这个逗号啊,分号这些东西尽量能不落的,千万别落下这逗号,你落下还还挺不好找的啊,挺不好找的,把这个逗号加上,哎呀,我的天呐。
16:03
啊A大note XT啊这个这个就好办了,为什么呀,这个是我们S报错,这个是不是我在in.TS这写的does就是属性,所以在这儿等于是这个编译没有没有通过,没有通过是不是就没有编译过去啊哎,没有编译过去,所以呢,我这加一个啊逗号,我觉得应该已经编过去了。哎呀,这没变过去来一个A,我加一个A,来一个33,随便写一个啊。还不行。哎,我就不信是吧,再不行我就把你吃了啊。诶,你看这个速度哎,可算行了是吧,那就不用我吃它了啊,所以你们写的时候啊,用这个wipad写的时候,它有的时候错误信息不是那么明显,别着急啊,报错了千万别慌,慢慢看一眼啊,看一眼好,现在的话再看我们这个编译好的这个诶代码看看有什么不一样,诶我这代码编译完了以后,我们看一眼吧,等于是我的这个新的这个对象编译完了,然后。
17:18
在这儿他是不是都没有出来呀。来,我给它关,我先给它关掉啊关掉。Close,然后来一个b.GS刚才呢,是我们文件刷新的缓存没刷过来,这后一打开是不是有了,诶你看诶咱们不关注别的啊,就看我这个变量cost对吧?Cost为什么这是cost,因为我在我的这个诶ts con杰森里边,我们指定的兼容版本是ES2015,也就是我实际上它就是转换成我们ES6代码了。而cost是不是就是ES6里边的了,所以这个时候证明,如果我们不用8BIBLE的话,它还是默认整个是ES6,好回到我们的wi派con,把我们刚才所写的这些ible的配置呢,我给它,诶注释给它打开,现在我让Bible生效,生效以后我再重新打包,看什么?我们来看一下,这还是不是抗死了,诶其实注意了,这儿其实不会发生变化,还是死,为什么还是亢死,我们待会儿再说,我们先打包一下。
18:22
诶,稍微等一下啊,这个打包的速度实在是稍微的有点慢,好打包完了这个时候我们还是关掉啊,成功了啊,等到成功了打开一下,你会发现这儿还是。com并没有发生什么变化,这是为什么?诶很简单,因为我们在这儿设置兼容浏览器的版本,我们是不是兼容到CHROME88呀,啊CHOME88相对来说就比较就是比较新的浏览器了,它的这个对ES6的支持非常,所以这个时候的话,你兼容的是CHOME88,而这里边你这个东西是不是可戎88支持啊,诶,所以它就没有给你转,还是这个。com现在可最新版本,我们来看一下啊,看一下我这什么版本。
19:04
嗯,点一下帮助,然后关于现在的最新啊,现在最新版本才87,我这还兼容88呢,那时候必然可以啊,诶必然可以,所以你说老师呢,我想用老版本的语法怎么办?老版本的语法的话你改一下呗,比如说我想兼容CHOME5是吧,诶我可以后边接着写啊,我还想兼容谁呢?兼容IE11,诶这个就是秒杀一切的版本了,你只要写成IE11,他一定会把语法转换成老版本,所以我在这儿写一个group冒号58,再写了一个IE冒号11表示什么意思,表示说我现在的代码是希望兼容到这两个浏览器的,那么IE11是不支持这个玩意儿的,所以一旦你写上了IE11以后,我们这儿再执行n PM run一个build。哎,这稍微等一下,还是需要编译一下啊,编译一下,那这个时候实际上它的编译流程是什么样子,就是我们的TS文件,先去找那个ts loader先转换成GS,然后GS再找我们这个Bible,再转换成我们这个老版本的GS,那这个时候你看这这个时候就用到了Y了,哎,就用到了Y,那这个是我们说的这样一个效果,诶那这样的话我们只需要什么呢?我们再写这个GS代码的时候,配置好了Bible,我们就不需要再去考虑说,诶我到底是用ES5啊,还是用六啊,还是用更新的,不用考虑你想用什么你就用什么,诶你只需要把你需要兼容的浏览器告诉我们的这个,诶Bible剩下的事儿它全都自动给你去搞定了,就这么简单啊,就这简单,然后的话,但是现在我们这儿这个扣GS,哎,扣GS还有这两个东西,这两个选项实际上现在没用上。
20:48
为什么没用上呢?因为现在我们用的都是一些,你像抗这东西就比较简单了,它要兼容,直接把抗变成这个袜就就可以了,不需要做什么特殊操作,因为我们没有用到一些特殊的类,但是呢,当我们如果用到的是一个特殊的类啊,特殊的类,比如说我要用到的是一个这个promise。
21:09
我们我们简单一点啊,简单一点我就不一不掉了,哎,P promise我要用到promise这个类,我就简单一下,我打印这个类在IE11里啊,就是在IE老版本的IE里,它都是没有这个东西的,没有这个东西,没有这个东西,那你一用那不就诶不就报错了吗?对吧,不就报错了吗?所以这个时候我现在打印的话,如果说我在这儿没有去使用这个扣GS,即使我们的代码通过Bible去编译了,那这个东西Bible是不会去处理的,它是不会去处理的,一定注意它处理不了,处理不了只有引了QGS才能处理,所以如果你用了它而没有用QS的话,即使用了Bible这个代码还是不能在老版本的IE当中执行,所以这个时候我们这里边这两个配置起作用了,他会干嘛呢?他一看,哎呦呵,诶,你这里边用了一个promise了,IE11里没有promise,哎怎么办呀?哎那。
22:09
干脆我在我这个扣GS里有一个我自己实现的promise,我给你干嘛呢?我给你引进去,你不就有了吗?有了那不就能用了吗?对吧,是这么一个意思,那现在我引入完了啊,我们来看效果,看效果我们在这儿执行一下,你看刚才我没写这个第18行代码,我们这个帮点GS很短,功能很少,对吧,很少,现在我用了promise了啊,在这儿我还是重新编译一下,我们来看一下。还是稍微等一下啊,稍微等一下。诶,编译呢,会花费点时间,你会发现当我用了一个promise,只加这么一个东西,但是我们的代码量,你会发现多出什么,你看我代码。虽然压缩了,是不是会发现长很多呀,诶长很多,你看前面加了这一堆的一堆的内容,为什么加了这么一堆内容,为什么这一堆代码就是扣GS里代码扣GS发现啊,你要用这个诶promise,而你又想兼容到IE11,而IE11又不支持promise怎么办?他给引入了一个他自己的版本的一个promise,让IE11可以去使用,就是这么一个效果,那为什么刚才没有,因为刚才没有用promise,而我们这设置是usage,按需加,按需引入,你用了我才引入,不用我就不引入,就这么一个效果,诶这就齐活了,诶那同学说了,老师啊,那是不是这样整完了以后,这个玩意儿在IE11里就能用了呢?哎,能用了呢?嗯,其实不一定。
23:45
不一定在哪啊,我们来运行一下。我就不通过webpa了,我就直接手动点了,现在的话这个是我们的这个Chrome Chrome的话我们一刷新你看啊,我这打印出来了,对吧,打印出来了,然后呢,我换一个啊,换一个我在IE里运行一下。
24:05
还是点击我们这个检查元素。看一下控制台。控制台注意刷新。那你看。在IE11里依然报了一个语法错误,那这个时候同学就该纳闷了,哎呀哎呀哎呀呀,老师啊,你这个这个这这这这个有点骗人的嫌疑啊。说了半天我们用bag是为了什么?为了解决这个浏览器的兼容性的问题,对吧?好,那你这兼容了半天,可是里边能执行,可是我们人家里边本来就能执行,那你现在我们希望就是在IE里边是不是也能执行啊,但是现在你写完这个代码是不是IE里不能执行啊,这是怎么回事啊?哎,其实这个错误很简单,你看人家错误的信息给你标示出来了,在帮do JS里的第一行。
25:02
第四个。代码第四个这个字符是不是出错了,我们直接看一下就行了啊,打开这个帮子点GS第四个你看0123。诶,这是别01.3是吧,1234是不是在这儿出错了,哎在这儿出错,诶你说这是这有什么错啊,哎注意了,你看啊,实际上我们这个wepad在给我们带毛打包的时候,这是个什么东西,你看它这是一个什么东西。这是不是一个箭头函数,它实际上在这儿用了一个箭头函数,整了一个这个字,这个自调用了一个函数,整了一个立即执行函数,是不是等于创建了一个这个,哎,创建了一个作用域啊,哎,代码是在这个作用域里去执行的,因为他为什么这么做,就是为了避免这个代码之间会互相产生干扰,但是问题是这个箭头函数它。IE,你支不支持?它不支持,所以其实这个错,这个锅它并不是bbible的锅,换句话说,你这儿写的即使是最简单代码,你看啊,我这不写,看我也不写这个Co,我就直接写Y都是最简单代码,然后我这儿进行一个重新编译,编译以后的话,我们还是拿到我们的这个IE11里去执行,还是拿到IE10里行,你会发现它其实还会有错啊,别着急,我们稍微的等一下子。
26:26
来看效果。一刷新,你看是不是还有错,即使是最简单的代码在I11这儿依然会出现语法错误,那这个时候这怎么还会出错啊,很简单,因为我们在这儿用了箭头函数,而箭头函数IE是不是它不支持啊,不支持那不就报错了吗?诶老师,我们不是用了Bible了吗?Bible是不是应该能把箭头函数转换成我们的这个这这这这普通函数啊,哎,的确可以,如果啊,如果我的函数写在了这儿,比如说我在这儿写了一个箭头函数啊,箭头函数我直接来一个,哎,随便写一个,哎,Let,一个FN等于个括号,我来一个A,逗号B,然后返回一个A加B,我这写了一个箭头函数,然后我调一个FN123逗号一个456,然后呢,我再调一个FN,随便写一个啊,777加上一个22,随便写一个,这个时候我们看一下啊,我们编译这个时候这个箭头函数。
27:27
通过BIBLE1定会转换成我们的普通函数,这是一定会转的啊,这是一定会转的,稍微等一下。哎,这个webpad的话,哎呀呀呀呀。哎呀呀呀。写了一个还报错了啊,这个是因为我们用了严格模式,这是让我们指定类型,指定类型指令吧,哎,那这个就是我们这个,这叫什么玩意儿nu MB啊,这就是我们TS一个特点,你写的时候呢,哎,这个类型的话,哎该指定都给它指定。
28:05
好,稍微的等一下,好这回编译成功了,再来看我这个邦德尔GS,你看啊,我来找一下我的FN这个函数。FN这个函数,你看我这个函数是不是就转换成普通函数了,看到了吗?哎,就已经转换成了,转换成了,但是但是。为什么那个玩意儿就没转换成呢?为什么它就没转换成呢?为什么?诶因为这个代码啊,这个自定义,这个叫做立即执行函数,它不是我们这个我们手写的。这是哪来的?这个是我们的one PA。打包的时候它自动生成的。它自动生成一个东西,这个东西压根就没有经过这个Bible,所以它会出问题,懂吧?诶它压根就没有经过Bible,也没有经过我们这TS东西,所以它一定会有,一定会有,为什么会有,就是因为自带的,所以PA最新的版本的话,它可能也不太愿意去兼容这个IE了,所以他设置这么一个东西,但是的话,实际上他就给我们带来一些困难,那我现在就想兼容IE,那怎么办呀?
29:11
那我不能手动去改它呀,对吧,不现实,所以这个时候我们就得需要修改配置文件,干啥玩意儿呢?我得告诉webpad啊,我还想兼容老版本浏览器,别用箭头函数了,就给我用普通函数,怎么办呢?在output这儿我们有一个配置选项,叫做什么呢?叫做environment。哎,Enviru,哎,Out environment,这是置什么呢?这是配置我们这个打包的环境啊环境我们有一个属性叫做a a row,一个function,我们直接给它设置为1FALSE,啥意思呢?这个选项就是告诉什么呢?哎,告诉我们这个web pack。哎,不使用我们这个箭头函数,哎,就是你别用了是吧,哎,我想用,因为我自己会转,你不会转你就别用了啊,别用了,然后我们再对它进行重新编译,我们来看一下。
30:09
哎呀,报错了,报错了看一下啊,哪写错了。Option。Object,那应该是我这个配置选项是不是给它。写错了,哎,Output,这是一个environment,我看一下我是不是把单词给拼错了,因为我在上边那个东西里面写了,哎,叫做一个environment,是不是这个呀,Environment好像少了个N。少了根吧。啊,拼错了,单词拼错了,因为这个这个属性它在这没有提示啊,我把这个这个这个这个个这个这个N给写成记成U了是吧,记成U了改过来,然后再是啊,然后再试。
31:00
看一下效果。稍微等一下看这意思应该没错了,OK,编译成功,编译成功,再看帮点GS,你看这是不是就换成了我们这个普通函数了,诶那这个时候再在IE11里运行就没有问题了啊,就没有问题了,即使你在这儿用的用了谁呢?用了我们这个promise,你重新编译一下,那么在IE11里边我们这个promise也就可以的使用了啊,可以正常使用了,好,我们再试最后一下子。稍微等一下是吧,花费很长时间在等这个编译啊,编译完了看效果,Promise在这儿是不是也就有了,哎,就有了,好,那经过我们的这个努力啊,那我们现在的话,基本上这个就是webpa的一个基本的这个webpa和TS和BIBLE3个东西的基本的一个环境就已经具备了啊,那这个时候你再写都写这个这个这个GS代码的话,就没有什么问题了,当然后边你说我还想去编译GS呀,打包这个图片啊,那这就是我们后边你可以再去补充的东西了,然后后边练习我们可能需要用到一些东西,我们再往后随着往后说,随着再去补充,但是这个基本结构的话,哎,你一定要给他记住,或者你说老师我记不住,记不住的话,你其实麻烦在哪儿啊。
32:26
麻烦点就在于这几个配置文件,所以你要记不住也好办,记不住干嘛呢?你把这几个配置文件呀,你留个底儿对吧,什么拍点杰森呀,TSB拍你留个底儿,以后用的时候你给他粘过去啊,粘过去稍微改不改吧,反正凑合也能用,但是最好的话,你能你得知道你不会写,还我还能接受啊,但是你得知道每一个部分代表的是什么意思,你能改。我们开发来讲暂时来讲足够了,但是最好能给他记住好,关于这个web派,我们就先说这么多,来停一下。
我来说两句