SublimeText:保存时将ES6转换为ES5

时间:2015-05-24 10:06:40

标签: sublimetext2 sublimetext3 ecmascript-6 babeljs

使用Less插件我得到了一个不错的选择 - >每当我保存文件时Css编译。如何与Babel获得相同的行为,将ES6代码转换为ES5?感谢

1 个答案:

答案 0 :(得分:4)

编辑

less2css Sublime插件利用Sublime API的on_post_save()事件来侦听文件Save,然后触发将自动编译.less文件的代码。通过在插件中使用此事件,并将其链接到将使用Babel自动编译当前文件的外部命令,可以为Babel ES6-to-ES5编译完成类似的操作。这是一个简单的ST2插件,用Python编写,可以实现这个目的:

import sublime, sublime_plugin,os
from os.path import dirname, realpath

class BuildonSave(sublime_plugin.EventListener):

  def on_post_save(self, view):
    es6File = view.file_name()
    filename, file_extension = os.path.splitext(es6File)
    if file_extension == ".es6":
      view.window().run_command('exec',{'cmd': ["/usr/local/bin/babel", es6File, "-o", filename+".js", "--source-maps", "inline"] })

注意:此插件会查找.es6后缀文件,并将它们编译为相应的.js文件,例如: myfile.es6,将被转换为ES5 myfile.js文件。

如果您使用的是Mac OS X,则可以在终端上运行cmd命令在您的系统上获取/usr/local/bin/babel位置which babel

也可以在此处找到源代码:https://gist.github.com/kostasx/1d55c62edcee88375fc8

如果您想与上面的代码混合,可以查看Sublime Plugin API文档。