2011-01-25 34 views
28

Tôi thích javascript, vì vậy tôi rất vui khi tôi nghe nói về Node.js, thời gian chạy Javascript dựa trên V8. Tôi muốn làm kịch bản shell của tôi trong tương lai. Vấn đề của tôi là: làm thế nào tôi có thể chạy tập lệnh của mình mà không cần gọi số node ~/Scripts/myscript.js? Sau khi tôi chmod +x tập lệnh của mình, nó cố gắng chạy dưới dạng tập lệnh bash thay vì javascript Node.js.Có thể chạy các kịch bản lệnh Node.js mà không cần gọi `nút` không?

+0

imho này thuộc về stackoverflow.com – akira

+1

@akira Tôi đăng nó ở đây vì nó liên quan đến việc sử dụng công cụ hơn là các chủ đề lập trình. Câu hỏi của tôi là về cách một hệ điều hành xử lý các tệp kịch bản, không phải về cách lập trình các tập lệnh đã nói. –

+0

Thực sự khá dễ dàng để thực hiện điều này trong Geany: http://stackoverflow.com/questions/12464679/run-a-node-js-server-from-geany/12465826#12465826 –

Trả lời

34

Làm cho vỏ hiện tại của bạn bắt đầu bash là vỏ hiện tại của bạn (bash?) Không có đầu mối về việc phải làm gì với tệp.js. Đó là lý do tại sao các vị thần của unix đã phát minh ra shebang cho:

Chuỗi ký tự bao gồm ký tự số và dấu chấm than (#!), Khi nó xuất hiện dưới dạng hai ký tự đầu tiên trong dòng đầu tiên của tệp văn bản. Trong trường hợp này, trình tải chương trình trong các hệ điều hành giống Unix phân tích phần còn lại của dòng đầu tiên như một chỉ thị thông dịch và gọi chương trình được chỉ định sau chuỗi ký tự với bất kỳ tùy chọn dòng lệnh nào được chỉ định làm tham số.

Vì vậy, trong trường hợp của bạn tôi sẽ cố gắng đưa

#!/usr/bin/env node 

ở phía trên cùng của kịch bản. Bạn có thể thấy rằng beeing được áp dụng cho ví dụ trong vỏ 'inode' (tương tác node.js), có thể là một tùy chọn khác để kích hoạt các script của bạn.

https://github.com/bancek/node-interactive-shell/blob/master/inode.js

+24

Thực ra anh ấy nên sử dụng '#!/Usr/bin/env node'. PS: Có Node được cài đặt dưới dạng root ... là ý tưởng tồi, luôn cài đặt nó trong '~/.local', bạn cũng nên cài đặt npm ở đó. Nếu không, người ta phải sudo npm để cài đặt các công cụ, và các gói nút có thể có các kịch bản cài đặt sau;) –

+0

@Ivo Wetzel làm cách nào để di chuyển cài đặt Node.js của tôi sang ~/.local? Tôi có nên gỡ cài đặt và cài đặt lại không? Tôi xây dựng từ nguồn bằng cách sử dụng 'make' –

+0

Gỡ cài đặt hiện tại và sau đó tham khảo ý kiến ​​này: https://gist.github.com/579814#file_xgd_freedesktop.org_style.sh –

0

Bạn luôn có thể chỉ đơn giản là tạo ra một kịch bản shell chạy nút cho bạn.

Hoặc, nếu bạn muốn tạo tập lệnh có thể chạy trong môi trường chưa cài đặt node.js, bạn có thể sử dụng installer-maker.

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