Подтвердить что ты не робот

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? Заранее благодарю вас!
4b9b3361

Ответ 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.

Ответ 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"
}