Theo mặc định, Windows liên kết .js
tệp với Windows Script Host , công cụ thời gian chạy JS độc lập của Microsoft. Nếu bạn nhập script.js tại dấu nhắc lệnh (hoặc bấm đúp vào .js
tệp trong Explorer), tập lệnh được thực thi bởi wscript.exe
.
Điều này có thể giải quyết vấn đề cục bộ với cài đặt chung , nhưng thay vào đó, bạn có thể liên kết .js
tệp với node.exe
để nhập script.js tại dấu nhắc lệnh hoặc nhấp đúp / kéo các mục vào tập lệnh sẽ khởi chạy chúng với Node.
Tất nhiên, nếu — như tôi — bạn đã liên kết .js
các tệp với một trình chỉnh sửa để nhấp đúp vào chúng sẽ mở ra trình soạn thảo văn bản yêu thích của bạn, thì đề xuất này sẽ không hiệu quả lắm. Bạn cũng có thể thêm mục nhập menu nhấp chuột phải là "Thực thi với nút" vào .js
tệp, mặc dù thay thế này không giải quyết được nhu cầu dòng lệnh của bạn.
Giải pháp đơn giản nhất có lẽ là chỉ sử dụng tệp loạt - bạn không cần phải có bản sao của Node trong thư mục mà tập lệnh của bạn nằm trong đó. Chỉ cần tham khảo hoàn toàn tệp thực thi Node:
"C:\Program Files (x86)\nodejs\node.exe" app.js %*
Một lựa chọn thay thế khác là ứng dụng C # rất đơn giản này sẽ khởi động Node bằng cách sử dụng tên tệp của chính nó + .js
làm tập lệnh để chạy và truyền theo bất kỳ đối số dòng lệnh nào.
class Program
{
static void Main(string[] args)
{
var info = System.Diagnostics.Process.GetCurrentProcess();
var proc = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files (x86)\nodejs\node.exe", "\"" + info.ProcessName + ".js\" " + String.Join(" ", args));
proc.UseShellExecute = false;
System.Diagnostics.Process.Start(proc);
}
}
Vì vậy, nếu bạn đặt tên EXE kết quả là "app.exe", bạn có thể nhập app arg1 ...
và Node sẽ được bắt đầu bằng dòng lệnh "app.js" arg1 ...
. Lưu ý rằng ứng dụng C # bootstrapper sẽ thoát ngay lập tức, để lại Node phụ trách cửa sổ giao diện điều khiển.
Vì điều này có lẽ là mối quan tâm tương đối rộng rãi, tôi đã tiếp tục và cung cấp điều này trên GitHub , bao gồm exe đã biên dịch nếu bạn muốn đi xe tải với người lạ.