2015-05-24 3 views
1

С плагином Less я получил хорошую Less -> Css-компиляцию всякий раз, когда я сохраняю файл. Как получить такое же поведение с Babel, чтобы код ES6 был перекочеван на ES5? БлагодаряSublimeText: transpile ES6 to ES5 on save

+1

Вы явно ищете возвышенный плагин или просто ищете способ перекомпиляции изменений? Инструмент CLI для Babel можно передать '-w', чтобы просматривать файлы для изменений. Как вы сейчас компилируете без возвышенного? – loganfsmyth

+0

Задание заданий (или любые шаги сборки, которые вы можете себе представить) также можно выполнить с помощью [grunt.js/gulp.js] (https://babeljs.io/docs/using-babel/). После настройки вы можете запустить задачу просмотра, выполняющую рутинные задания для вас, или вы можете вручную запустить шаги сборки через CLI. – jaydoubleyou

ответ

3

Edited после @ Lukas-kabrt предложение:

less2css Sublime плагин, использует on_post_save() событие Блистательной API, чтобы слушать для сохранения файла, а затем вызвать код, который будет компилировать .less файл автоматически. Что-то подобное может быть выполнено для компиляции Babel ES6-to-ES5, используя это событие в плагине и привязывая его к внешней команде, которая автоматически скомпилирует текущий файл с помощью Babel. Это простой плагин для 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, будет передан в файл myfile.js ES5.

cmd расположение /usr/local/bin/babel можно получить в вашей системе, выполнив команду which babel на терминале, если вы на Mac OS X.

Исходный код можно найти здесь: https://gist.github.com/kostasx/1d55c62edcee88375fc8

Вы может проверить документацию API Sublime Plugin, если вы хотите пообщаться с кодом выше немного больше.

+0

Любая идея, что последняя строка превращается в Windows? –

+0

@StevenScaffidi Вы можете попробовать следующие шаги: во-первых, установить CLI Бабель: 'C: /> NPM установить -g Бабель-cli' Затем найдите путь к исполняемому файлу:' C: /> где babel' Заменить например, при моей установке: 'C: \ Users \ USER \ AppData \ Роуминг \ npm \ babel.cmd' И не забудьте избежать косых черт! 'view.window(). Run_command ('exec', {'cmd': ['C: \\ Users \\ USER \\ AppData \\ Роуминг \\ npm \\ babel.cmd', es6File," - o ", filename +". js "," --source-maps "," inline "]})' – KostasX

+1

Я пытался \\ babel, и он не работал. Изменил его на \\ babel.cmd, и он отлично работает. Большое спасибо. –

Смежные вопросы