Có ai đã thiết lập một cái gì đó như thế này cho chính mình bằng cách sử dụng REPL hiện tại node.js không? Tôi đã không nghĩ ra một cách nhanh chóng để làm điều đó.node.js - đánh giá quá trình trực tiếp
Cách tôi làm điều đó hôm nay là sử dụng emacs và điều này: https://github.com/ivan4th/swank-js
Module này bao gồm:
Một SLIME-js addon để emacs đó, kết hợp với js2-mode , cho phép bạn chỉ cần phát hành CMx ở đâu đó trong phần thân của chức năng def - và tắt chuỗi chức năng của ..
Máy chủ Swank-js (có, bạn c đánh giá từ máy cục bộ của bạn trực tiếp đến quy trình từ xa) được viết bằng Node.js - Nó nhận được chuỗi của hàm bạn đã đánh giá và thực sự evals nó
Toàn bộ phần cho phép bạn kết nối với cổng trên máy chủ đó với trình duyệt của bạn và sau đó cho phép bạn thao tác DOM trên trình duyệt mà (đó là khá tuyệt vời nhưng không có liên quan)
giải pháp của tôi sử dụng SLIME-js ở phía emacs vÀ tÔI yêu cầu (' swank- js ') trên tệp app.js của tôi
Bây giờ .. Tôi có một số vấn đề và câu hỏi liên quan đến giải pháp của mình hoặc các vấn đề khác có thể:
Q1: Việc này có quá mức không? Có ai đó có một cách bí mật để đánh giá công cụ từ nano vào quá trình trực tiếp của mình không?
Q2: Tôi đã phải thay đổi cách phô trương-js được EVALing .. nó được sử dụng một số loại ma thuật đen như thế này:
var Script = process.binding('evals').Script;
var evalcx = Script.runInContext;
....
this.context = Script.createContext();
for (var i in global) this.context[i] = global[i];
this.context.module = module;
this.context.require = require;
...
r = evalcx("CODECODE", this.context, "repl");
đó, như xa Tôi hiểu, chỉ cần sao chép các biến toàn cục để các ngữ cảnh mới, và khi eval, không thay đổi chức năng gốc định nghĩa - SOOO .. Tôi chỉ sử dụng đồng bằng "eval" và CNTT WORKS.
Bạn có bất kỳ nhận xét nào về vấn đề này không?
Q3: Để đánh giá lại hàm, hàm cần phải là hàm GLOBAL - Thực tiễn không tốt để có tất cả định nghĩa hàm là toàn cục (giống như đinh)? Bạn có nghĩ rằng có một cách khác để làm điều này?
Trên thực tế, tôi khá quan tâm đến việc câu hỏi này là tốt .. Tôi nghi ngờ rằng chơi xung quanh với ma thuật đen trong đó có thể warrent một số câu trả lời. Tôi biết những gì tôi sẽ làm hôm nay! –