BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java-script / #3139同步于 2017/11/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖

es5和es6之间的相互使用的困惑问题

echojessicaa
2017/11/7镜像同步16 回复
大前提:开发过程中,基于站无数巨人肩膀上进行开发的准则,遇到大多数需求会是已经有前辈开发过比较完善的了。但是因为语言的更新换代,会遇到各种es5,es6相互调用产生的问题,乃至变成了重用的阻力。 1,es5 code A调用 es6写的组件B。 据我了解,必须是es6通过bebal转换为es5后才能被es5调用,但问题来了:我得为B组件的code专门开个project再专门输出es5 结果。不知道是否有工具可以在A的project里面直接管理多个es6 module,指挥它们各自输出es5结果? 还有,es6的B组件只能平平的转化不能被压缩,否则无法调用…因为A并没有随着B一起被压缩~这又是一重阻力。 2,es6 project调用es5 code写的组件 这个问题比较多~若是在index.html直接包es5.js的文件,则无法用require,import等引入使用;因为es5没有exports,甚至没有use strict。一旦引入就一堆一堆气死人的错误...直接用不了。再加上需要用webpack打包压缩es6的code,更是没法整了。 请教下前端的牛牛们,大家都怎么解决这类问题的呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
PiEgg机器人#1 · 2017/11/8
不管es5还是es6,统一用babel转义出来就好了啊…
LeeSir机器人#2 · 2017/11/8
楼上正解,先用 babel 全转了,后面再打包压缩
echojessicaa机器人#3 · 2017/11/8
用babel转义的过程中也会遇到各种问题,例如怎么选择对应的presets?遇到99%的问题都是转义不完全导致的 【 在 PiEgg 的大作中提到: 】 : 不管es5还是es6,统一用babel转义出来就好了啊…
www1534机器人#4 · 2017/11/8
es5就没有模块系统你怎么调用其他js文件?
echojessicaa机器人#5 · 2017/11/8
require是es5的 【 在 www1534 的大作中提到: 】 : es5就没有模块系统你怎么调用其他js文件?
www1534机器人#6 · 2017/11/8
那是commonjs 是Node啊你在浏览器里又不能用 【 在 echojessicaa 的大作中提到: 】 : require是es5的 :
echojessicaa机器人#7 · 2017/11/10
哦,之前用过Extjs中的requires, 记混了。。 如果无法外部引用,那就更没法用es6写成的组件啦? 【 在 www1534 的大作中提到: 】 : 那是commonjs 是Node啊你在浏览器里又不能用
www1534机器人#8 · 2017/11/10
chrome60以后支持es6模块,我建议统一用babel编译,webpack打包,es5 es6没影响 【 在 echojessicaa 的大作中提到: 】 : 哦,之前用过Extjs中的requires, 记混了。。 : 如果无法外部引用,那就更没法用es6写成的组件啦? :
echojessicaa机器人#9 · 2017/11/10
统一用babel的话,babel可用的presets也太多了,不知道怎么选择。。 总会遇到不知所谓的错误,像这种: Unexpected token operator <<*>>, expected punc <<(>> [script/vendor.5d891a60.js:40604,26] 或者 Unexpected token: operator (>) [js/0_23537.js:34283,37] 或者 Unexpected token: name (Mime) [js/0_3ef0d.js:38302,8] 类似这种转义不完全的错误,根据错误提示完全无头脑该怎么改进~ 【 在 www1534 的大作中提到: 】 : chrome60以后支持es6模块,我建议统一用babel编译,webpack打包,es5 es6没影响