यदि आपकी स्क्रिप्ट नोड डेवलपर्स द्वारा उपयोग के लिए अभिप्रेत है, तो आपको पूरी तरह से उपयोग करना चाहिए
#!/usr/bin/env node
और उन लोगों के साथ संगतता के लिए प्रयास करने से परेशान न हों, जिनके पास केवल Node स्थापित है nodejs।
दलील:
- यह शांत बच्चे कर रहे हैं, और यदि आप ऐसा नहीं करते हैं, तो आप शांत नहीं हैं। जैश , कर्म , बोवर और यहां तक कि एनपीएम जैसी प्रमुख नोड परियोजनाएं केवल
#!/usr/bin/env nodeउनके निष्पादन योग्य लिपियों के लिए शेबंग के रूप में उपयोग करती हैं।
- क्योंकि शांत बच्चे यह कर रहे हैं, जो कोई भी उबंटू पर नोड के साथ काम करता है उसने
/usr/bin/nodeएक सिम्लिंक के रूप में स्थापित किया है nodejs। स्टैक ओवरफ्लो, और पूरे वेब पर यहां ऐसा करने के लिए अत्यधिक-निर्देश दिए गए हैं। यहां तक कि वह nodejs-legacyपैकेज भी था जिसका पूरा उद्देश्य आपके लिए यह सिमलिंक बनाना था। जो लोग नोड का उपयोग कैसे Ubuntu पर इस समस्या को दूर करने के लिए पता है, और वे के लिए अगर वे काफी कभी नोड में लिखा किसी भी सॉफ्टवेयर का उपयोग करना चाहते हैं।
- समस्या भी Ubuntu 14.04 पर किसी भी अधिक मौजूद नहीं है; मैं सिर्फ नोड शुद्ध और एक भाग गया
apt-get install nodejsऔर यह /usr/bin/nodeकरने के लिए एक सहानुभूति के रूप में बनाया /etc/alternatives/node। इस मुद्दे से पीड़ित लोग हैं, मुझे संदेह है, एक छोटा अल्पसंख्यक।
यहां तक कि अगर आप नोड-अनपढ़ लोगों को लक्षित कर रहे हैं, तो भी आप उपयोग करना चाह सकते हैं, हो सकता है कि #!/usr/bin/env nodeमैनुअल सीलिंक निर्माण या nodejs-legacyपैकेज की स्थापना के लिए संभावित आवश्यकता को जोड़कर यदि आप इसे आवश्यक समझें। ध्यान दें कि यदि कोई उपलब्ध nodejsनहीं है, लेकिन nodeउपलब्ध कार्यक्रम को उपरोक्त शेबंग के साथ चलाने की कोशिश करता है, तो वे देखेंगे:
/ usr / bin / env: नोड: ऐसी कोई फ़ाइल या निर्देशिका नहीं है
और Googling जो उन्हें पहले परिणाम में और पहले पृष्ठ पर कई बार तय करेगा।
यदि आप वास्तव में, यह सुनिश्चित करना चाहते हैं कि उपयोगकर्ता आपके सॉफ़्टवेयर को एक सिस्टम पर चला सकता है, जहां nodejsउपलब्ध है, लेकिन nodeऐसा नहीं है (या जहां nodeवास्तव में एमेच्योर पैकेट रेडियो नोड प्रोग्राम है ), तो आप इस "टू-लाइन शबंग" का उपयोग कर सकते हैं। से यूनिक्स और लिनक्स स्टैक एक्सचेंज :
#!/bin/sh
':' //; exec "$(command -v nodejs || command -v node)" "$0" "$@"
console.log('Hello world!');
लेकिन क्या आपको वास्तव में ऐसा करने की आवश्यकता है जब नोड दुनिया में कोई और नहीं है?