返回信息流大前提:开发过程中,基于站无数巨人肩膀上进行开发的准则,遇到大多数需求会是已经有前辈开发过比较完善的了。但是因为语言的更新换代,会遇到各种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,更是没法整了。
请教下前端的牛牛们,大家都怎么解决这类问题的呢?
这是一条镜像帖。来源:北邮人论坛 / java-script / #3139同步于 2017/11/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖
es5和es6之间的相互使用的困惑问题
echojessicaa
2017/11/7镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
用babel转义的过程中也会遇到各种问题,例如怎么选择对应的presets?遇到99%的问题都是转义不完全导致的
【 在 PiEgg 的大作中提到: 】
: 不管es5还是es6,统一用babel转义出来就好了啊…
哦,之前用过Extjs中的requires, 记混了。。
如果无法外部引用,那就更没法用es6写成的组件啦?
【 在 www1534 的大作中提到: 】
: 那是commonjs 是Node啊你在浏览器里又不能用
chrome60以后支持es6模块,我建议统一用babel编译,webpack打包,es5 es6没影响
【 在 echojessicaa 的大作中提到: 】
: 哦,之前用过Extjs中的requires, 记混了。。
: 如果无法外部引用,那就更没法用es6写成的组件啦?
:
统一用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没影响