Node.js построить систему в Sublime Text 2
Я просто начал изучать 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? Заранее благодарю вас!
Ответы
Ответ 1
{
"cmd": ["node","$file"]
}
отлично работает для меня в окнах, и он показывает результат в возвышенном окне. Хотя я не знаю, как остановить сервер после возвышенного, мне нужно выполнить поиск и уничтожить процесс node.
Кроме того, проверьте node в PATH;)
Надеюсь, что это сработает для вас.
Ответ 2
Пользователи Mac, введите which node
в терминал. Он выводит путь к исполняемому файлу node, который в большинстве случаев равен /usr/local/bin/node
. Теперь создайте новую систему сборки (Tools > Build System > New Build System
) со следующими настройками в Sublime Text.
{
"cmd": ["/usr/local/bin/node", "$file"],
"selector": "source.js"
}
Ответ 3
Протестировано на Ubuntu Linux. Используйте селектор файлов, как показано ниже:
{
"cmd": ["node", "$file"],
"selector": "*.js"
}
Ответ 4
Вот совет для Windows,
Большинство ответов из этого потока верны, но ни один из них не является полным, и, по крайней мере, ни один ответ не говорит о том, как убить существующий процесс Node, даже если вы можете запустить Node в возвышенном виде. Поэтому в конечном итоге, если любой из вышеперечисленных подходов сработает для вас, вы в конечном итоге вручную уничтожаете Node.
Вот что я сделал для "Windows":
- Откройте Sublime Text, перейдите к "Tools" → "Build System" → "Новая система сборки"
- Выше откроется новый файл, вставьте ниже содержимого там и сохраните его как nodejs.xxx(используйте расширение по умолчанию):
{
"cmd": [ "c:/test.bat", "$ file" ]
}
- Создайте файл (c:/test.bat) и вставьте этот контент (оба из двух строк):
taskkill/F/IM "node.exe"
"c:/Program Files/nodejs/ node.exe" % 1
- Сохраните его, перейдите в Sublime Text и выберите "Tools" → "Build System" → "nodejs"
- откройте любой файл Nodejs Exectuable и нажмите CTRL + B.
- Тебе хорошо идти.:)
Наслаждайтесь noding.
Ответ 5
Метод № 2 приведенной ниже ссылки решен для меня:
http://www.wikihow.com/Create-a-Javascript-Console-in-Sublime-Text
Ответ 6
Обычно
"cmd":["node",$file]
будет работать. Однако не стоит останавливать сервер, чем.
Я нашел лучшее решение, которое открывает сервер в новой консоли и автоматически закрывает его.
Я также отлично работаю с супервизорами или node -inpector
"cmd" : ["start", "cmd.exe", "/C", "node", "$file"]
Я надеюсь, что это поможет
Ответ 7
Я могу видеть вывод консоли только в том случае, если файл существует/сохраняется на диске. (для анонимного файла я тоже не вижу выход)
Надеюсь, что это поможет
Ответ 8
Это woks для меня в Windows7
1) Откройте Sublime Text, перейдите к "Tools" → "Build System" → "New Build System"
2) Вставить этот текст
{
"cmd": ["C:\\Program Files (x86)\\nodejs\\node","$file"]
}
\\ Экранирующий символ
3) Сохранить как Node.sublime-build
4) Напишите новый js файл и нажмите CTRL + B для сборки.
Нажмите здесь, чтобы увидеть пример изображения.
Ответ 9
Может быть, это зависит от переменных окружения - попробуйте использовать полный путь к node вместо "nodejs".
Он работал у меня в Mac OS (например,/usr/local/ node вместо node)
Ответ 10
Если все остальное не работает, проверьте Node Supervisor......., вам нужно только изменить код, и сервер перезагрузит его самостоятельно, чтобы вы могли видеть изменения live =)
Ответ 11
В Windows работает следующая конфигурация:
{
"cmd": ["C:\\Program Files\\nodejs\\node.exe", "$file"],
"selector": "source.js"
}
Ответ 12
В linux я использую это, просто убедитесь, что вы находитесь в основном файле
{
"shell_cmd": "pkill node ; node $file"
}