node.js - оценка живого процесса
-
27-10-2019 - |
Вопрос
Настроил ли кто-нибудь что-то подобное себе, используя существующий node.js REPL? Я не придумал, как это сделать быстро.
Сегодня я использую emacs и вот что: https://github.com/ivan4th/swank-js
Этот модуль состоит из:
-
Дополнение SLIME-js к emacs, которое в сочетании с режимом js2 позволяет вы просто вводите C-M-x где-нибудь в теле функции def - и off переходит из строки функции в ..
-
Сервер Swank-js (да, вы можете выполнить оценку со своей локальной машины непосредственно удаленному процессу), написанное на Node.js - он получает строка функции, которую вы оценили, и фактически вычисляет ее
-
Целая часть, позволяющая подключаться к другому порту на этом сервере. с вашим БРАУЗЕРОМ, а затем позволяет вам управлять DOM в этом браузере (что неплохо, но не актуально)
Мое решение использует SLIME-js на стороне emacs, И мне требуется ('swank- js ') в моем файле app.js
Теперь ... у меня есть несколько проблем и вопросов относительно моего решения или другие возможные:
В1. Вы переусердствовали? Есть ли у кого-нибудь секретный способ оценки материала из нано в его живой процесс?
Q2. Мне пришлось изменить способ оценки swank-js ... он использовал некоторые разновидность черной магии вроде этого:
родовое словокоторый, насколько я понимаю, просто копирует глобальные переменные в новый контекст и после eval не изменяет исходную функцию определения - ТАК .. Я просто использую "eval" и ИТ РАБОТАЕТ.
Есть ли у вас какие-либо комментарии по этому поводу?
Q3: чтобы повторно вычислить функцию, она должна быть ГЛОБАЛЬНОЙ функцией - Плохая практика - иметь все определения функций как глобальные (похожие на clojure)? Как вы думаете, есть другой способ сделать это?
Решение
На самом деле swank.js становится намного лучше, и теперь стало намного проще настроить swank js для вашего проекта с помощью NPM.Я сейчас пишу документацию, но функциональность есть!
Другие советы
Оцените это http://nodejs.org/api/vm.html
родовое словоДолжен вам очень помочь, все вещи песочницы для узла используют его :) но вы можете использовать его напрямую :)
Вы можете взглянуть на jsapp.us, который запускает JS в песочнице, а затем представляет его миру как небольшой тестовый сервер.Вот jsapp.us репозиторий github .
Кроме того, зайдите в # node.js и задайте вопросы дляболее быстрый ответ :)