Sublimetext2 SublimitText:保存时将ES6传输到ES5

Sublimetext2 SublimitText:保存时将ES6传输到ES5,sublimetext2,sublimetext3,ecmascript-6,babeljs,Sublimetext2,Sublimetext3,Ecmascript 6,Babeljs,使用Less插件,每当我保存文件时,我都会得到一个不错的Less->Css编译。如何使Babel具有相同的行为,将ES6代码传输到ES5?感谢@lukas kabrt建议后编辑的: less2cssSublime插件利用Sublime API的事件来侦听文件保存,然后触发将自动编译.less文件的代码。通过在插件中使用此事件,并将其链接到将使用Babel自动编译当前文件的外部命令,可以为Babel ES6到ES5编译实现类似的功能。这是一个简单的ST2插件,用Python编写,可实现以下功能:

使用Less插件,每当我保存文件时,我都会得到一个不错的Less->Css编译。如何使Babel具有相同的行为,将ES6代码传输到ES5?感谢@lukas kabrt建议后编辑的

less2css
Sublime插件利用Sublime API的事件来侦听文件保存,然后触发将自动编译.less文件的代码。通过在插件中使用此事件,并将其链接到将使用Babel自动编译当前文件的外部命令,可以为Babel ES6到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上,通过在终端上运行
which babel
命令,可以在您的系统上获得
cmd
位置
/usr/local/bin/babel

源代码也可以在这里找到:


如果您想与上面的代码进一步融合,可以查看Sublime插件API文档。

在@lukas kabrt建议之后编辑

less2css
Sublime插件利用Sublime API的事件来侦听文件保存,然后触发将自动编译.less文件的代码。通过在插件中使用此事件,并将其链接到将使用Babel自动编译当前文件的外部命令,可以为Babel ES6到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上,通过在终端上运行
which babel
命令,可以在您的系统上获得
cmd
位置
/usr/local/bin/babel

源代码也可以在这里找到:


如果您想与上面的代码进一步融合,可以查看Sublime插件API文档。

您是在明确地寻找Sublime插件,还是只是在寻找任何方法在发生更改时重新编译?Babel的CLI工具可以通过
-w
查看文件的更改。如果没有sublime,您现在是如何编译的?传输作业(或您可以想象的任何构建步骤)也可以通过。安装完成后,您可以运行一个监视任务,为您执行例行作业,或者您可以通过CLI手动触发构建步骤。您是在明确寻找升华插件,还是只是在寻找任何方法在发生更改时重新编译?Babel的CLI工具可以通过
-w
查看文件的更改。如果没有sublime,您现在是如何编译的?传输作业(或您可以想象的任何构建步骤)也可以通过。安装完成后,您可以运行监视任务,为自己执行例行作业,也可以通过CLI手动触发构建步骤。知道最后一行在Windows上会变成什么吗?@Stevenscapfidi您可以尝试以下步骤:首先,安装babel CLI:
C:/>npm安装-g babel CLI
然后找到可执行路径:
C:/>其中babel
将cmd替换为您将获得的路径,例如在我的安装中:
C:\Users\USER\AppData\Roaming\npm\babel.cmd
,不要忘了跳出斜杠
view.window().run_命令('exec',{'cmd':['C:\\Users\\USER\\AppData\\Roaming\\npm\\babel.cmd',es6File,“-o”,“filename+”.js“,“--source maps”,“inline”]})
我在尝试\\babel,但它不起作用。将其更改为\\babel.cmd,效果非常好。非常感谢。知道最后一行在Windows上变成了什么吗?@Stevenscapfidi您可以尝试以下步骤:首先,安装babel CLI:
C:/>npm安装-g babel CLI
,然后找到可执行路径:
C:/>其中babel
将cmd替换为您将获得的路径,例如,在我的安装中:
C:\Users\USER\AppData\Roaming\npm\babel.cmd
,别忘了跳过斜杠
view.window().run_命令('exec',{'cmd':['C:\\Users\\USER\\AppData\\Roaming\\npm\\babel.cmd',es6File,“-o”,“filename+”.js“,“--source maps”,“inline”]})
我在尝试\\babel,但它不起作用。将其更改为\\babel.cmd,效果非常好。非常感谢你。