Я просто начал изучать JavaScript. Во время этого я устал от внедрения моего кода JavaScript в HTML-документ, чтобы запустить его в браузере. Я подумал, что было бы неплохо просто запустить мои скрипты прямо в Sublime-консоли, поэтому мне не пришлось бы оставлять редактор. Поэтому я пытался создать систему сборки JavaScript, поскольку Sublime не приходит с одним.
Моя идея заключалась в использовании Node.js в качестве интерпретатора JavaScript. Я установил его с менеджером пакетов Linux Mint. Насколько я могу судить, все работает отлично. Скажем, у меня есть файл test.js, содержащий следующую строку кода JavaScript:
console.log("Hello World");
Когда я запускаю
nodejs /path/to/test.jsв своей консоли, я получаю:
Hello WorldТем не менее, я не понимаю, как это работает с Sublime. Я создал новую систему сборки, нажав Сервис/Создать систему/Новая система сборки. Затем я набрал следующие строки:
{ "cmd": ["nodejs", "$file"] }Насколько мне известно, эта одна строка представляет собой представление JSON следующей команды:
nodejs /path/to/current/file.extКак я уже сказал, если я запускаю это вручную в консоли, он работает нормально. Если я нажму F7 в Sublime, который является ярлыком для Build, появится Sublime console. Он пуст, хотя.
Там другая странная вещь. Несмотря на то, что (несуществующий) вывод Sublime-консоли указывает на то, что система сборки не настроена на правильную работу с Node.js, я обнаружил некоторые ошибки Node.js, когда я случайно попытался запустить не-JS таких как файл Node.sublime-build. Это вывод, отображаемый в консоли Sublime:
/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2 "cmd": ["nodejs", "$file"] ^
module.js: 434 var compiledWrapper = runInThisContext (wrapper, filename, true); ^ SyntaxError: Неожиданный токен: на Module._compile (module.js: 434: 25) в Object..js(module.js: 464: 10) на Module.load(module.js: 353: 32) в Function._load (module.js: 311:12) в Array.0 (module.js: 484: 10) на EventEmitter._tickCallback (node.js: 190: 39) [Закончено в 0,1 с кодом выхода 1]
Итак, почему я не получаю никакого результата при выполнении фактического кода JavaScript? Заранее благодарю вас!