army8735 / jsdc

Javascript Downcast (es6 to es5)
http://army8735.me/jsdc
93 stars 12 forks source link

支持sourcemap和更好的代码排版 #18

Open hax opened 10 years ago

hax commented 10 years ago

其他几个transpiler也是保持行数一致,但是我个人觉得6to5的做法更好。

因为生成代码可读性对于支持调试其实也很重要。但是强制源码行数一致必定导致生成代码可读性的实际下降。而且仅行数对应,也不能解决行较长没有col位置的问题。

现在浏览器都支持sourcemap,所以建议放弃行数对应,改为支持sourcemap,并给出更好的代码排版,甚至可加入注释。比如在注释中包含源码(这样还能解决不支持sourcemap的老浏览器的调试问题)。

army8735 commented 10 years ago

囧,一直觉得sm不好用才这样的,目前使用感受就是报错后有行有提示直观就定位到当前写的地方,倒没出现难找难读的情况。 不过既然有需求就加一个也行……

hax commented 10 years ago

嗯,你觉得sourcemap不好用在哪里呢?

当然大多数语法糖转换,其实行对应还可以。我觉得可能降低可读性的,比如generator的生成代码和较复杂的destructuring的生成代码。

army8735 commented 10 years ago

因为一直没看懂怎么用……

hax commented 10 years ago

就是直接对应啊。在支持sourcemap的浏览器里看到的source是真的源码,然后出错断点什么的,会从编译后的位置自动转换到源码的位置。

army8735 commented 10 years ago

转换的结果需要就是格式化好的吧?制作sourcemap的工具有啥推荐吗?

hax commented 10 years ago

原理看@jinjiang 这个介绍:http://jinjiang.github.io/h5slides/demo/

我见到的许多实现用的是mozilla的sourcemap库:https://github.com/mozilla/source-map/

Jinjiang commented 10 years ago

@hax 那个链接直接点进去是没有内容的 我帮你纠正一下 http://jiongks.name/slides/source-map-intro/

army8735 commented 10 years ago

两个打开都没内容?

rchee commented 9 years ago

非常同意,真的不需要全都堆在一行的。

army8735 commented 9 years ago

只能等了,有其它的忙。

主要是generator的不好读。另外和不动es5代码这个特性冲突,最主要是那个sourcemap一直不了解,感觉不好用。