2010-03-05 71 views
11

Tôi đang tìm cách viết các chương trình/tập lệnh Javascript trên máy tính để bàn chứ không phải trong trình duyệt. Tôi muốn nó chạy như Python - từ dòng lệnh, để có thể đọc các tập tin, ghi tập tin, vv Tất cả các giải pháp tôi tìm thấy đã đề cập (Rhino, spidermonkey, V8) là để nhúng. Có ai thực hiện thực hiện đơn giản cho chỉ cần viết chương trình độc lập với đầy đủ khả năng truy cập hệ điều hành vv?cách đơn giản nhất để viết chương trình bằng javascript trên máy tính để bàn?

Dành cho cửa sổ tốt hơn hoặc có thể là Linux

+0

Nếu bạn muốn thực hiện trên Windows, bạn có Máy chủ Windows Script. – Cheeso

Trả lời

4

Node.js cho phép bạn viết JavaScript phía máy chủ. Node.js hoạt động trên Linux, Mac và Windows.Nó cũng có một REPL thực sự tốt để bạn có thể khởi động nó từ thiết bị đầu cuối của mình để viết JavaScript và xem nó hoạt động như thế nào.

+1

Chỉ cần lưu ý, node.js hiện đang chạy trên Windows rất, rất tốt. –

5

Nếu bạn có Windows, thì bạn đã có Máy chủ Windows Script. Bạn có thể sử dụng nó để thực thi các chương trình javascript trong Windows.

http://msdn.microsoft.com/en-us/library/9bbdkx3k(VS.85).aspx

+0

Tôi luôn làm việc đó. Nó giống như một công cụ hàng loạt siêu mạnh mẽ, nhưng ... ah .... nó hoạt động. – Cheeso

6

Hans đề cập đến Windows Script Host đã có, nhưng có một trình biên dịch cho mát JScript và có thể bạn đã có nó được cài đặt (nó đi kèm với .NET). Bạn có thể viết JavaScript bằng cách sử dụng bất kỳ thư viện .NET nào và biên dịch nó sang tệp .exe của Windows. Xem this link để được giới thiệu về biên dịch với jsc. Bạn sẽ có thể tìm thấy nhiều hơn từ đó.

Điều này không cho phép bạn chạy từ dòng lệnh như tập lệnh mà không biên dịch trước, nhưng bạn có thể quan tâm đến nó vì nó cung cấp cho bạn quyền truy cập vào rất nhiều thư viện.

Đây là chương trình thử nghiệm barebones. jsc đã có trên đường dẫn của tôi, gõ jsc trong một dấu nhắc lệnh để xem nó có nằm trên máy của bạn hay không.

test.js:

import System.io; 
import System; 

function test() 
{ 
    Console.WriteLine("test"); 
}; 

function test2(arg) 
{ 
    Console.WriteLine(arg); 
}; 

test(); 
test2("argtest"); 

Biên dịch và chạy:

C:\test>jsc test.js 
Microsoft (R) JScript Compiler version 8.00.50727 
for Microsoft (R) .NET Framework version 2.0.50727 
Copyright (C) Microsoft Corporation 1996-2005. All rights reserved. 


C:\test>dir 
Volume in drive C has no label. 

Directory of C:\test 

03/05/2010 09:19 AM <DIR>   . 
03/05/2010 09:19 AM <DIR>   .. 
03/05/2010 09:26 AM    5,120 test.exe 
03/05/2010 09:23 AM    178 test.js 
       2 File(s)    - bytes 
       3 Dir(s)    - bytes free 

C:\test>test.exe 
test 
argtest 

C:\test> 

Dường như có một số hạn chế nghiêm trọng mà tôi chạy vào ngay lập tức trong việc đưa ra rằng chương trình thử nghiệm. Ví dụ, các hàm xuất hiện để được gõ mạnh mẽ hơn trong môi trường trình duyệt. Tôi không thể gọi test() và vượt qua một đối số trừ khi tôi đã xác định tham số đó như là một phần của định nghĩa hàm. Nếu bạn quen thuộc với JavaScript được lưu trữ trên trình duyệt, bạn biết rằng bạn có thể xác định hàm với bất kỳ số tham số nào và gọi hàm đó với bất kỳ số lượng đối số nào.

Vì vậy, có vẻ như việc viết các ứng dụng bằng JavaScript trên máy tính để bàn sẽ là một trải nghiệm hoàn toàn khác nếu có nhiều chênh lệch hơn với cách bạn sử dụng nó.

+0

Điều đó thực sự tuyệt vời. Lưu ý rằng bạn có thể phải chỉnh sửa đường dẫn của mình. Ngoài ra, đây là trong NET Framework 2.0 của tôi nhưng không phải 3,5. – JasonFruit

+0

để nó chỉ có sẵn với .NET cũ và sử dụng các mô-đun hệ thống .NET? – zaharpopov

+0

@zaharpopov .NET 2 bao gồm trình biên dịch jsc.exe, .NET 3.5 không. Tôi không biết những gì bạn có ý nghĩa của mô-đun hệ thống .NET. Bạn có thể sử dụng nhập khẩu như tôi đã chỉ ra trong ví dụ, nhưng chúng không phải là từ không gian tên System. Tôi chỉ cần hệ thống để sử dụng Console.WriteLine. Đối với tương lai của trình biên dịch JScript, không chắc ai biết ... nó không giống như nó đã từng rất phổ biến. JavaScript luôn bị các nhà phát triển "thực sự" xem thường. –

Các vấn đề liên quan