Exercism के अभ्यास अपनी मशीन पर हल करने के लिए JavaScript इंस्टॉल करना सीखिए
यह ट्रैक JavaScript के लिए रनटाइम देने में पूरी तरह Node.js पर निर्भर करता है। इसका मतलब है कि हम यह मानकर चलते हैं कि आपके कंप्यूटर पर JavaScript का सारा कोड Node.js से ही चलेगा।
बहुत-से कंप्यूटरों में Node.js पहले से इंस्टॉल मिलता है, या वह पहले कभी इंस्टॉल किया गया हो सकता है, या किसी डिपेंडेंसी के रूप में आया हो सकता है। इसलिए कुछ भी करने से पहले हमें यह जाँच लेना चाहिए कि यह पहले से इंस्टॉल है या नहीं:
Terminal, cmd, Powershell, bash, ...)node -vअगर Node.js इंस्टॉल है, तो एक वर्ज़न दिखाई देगा।
इस वर्ज़न को लिख लीजिए।
अगर Node.js इंस्टॉल नहीं है, तो एक एरर दिखाई देगी।
आम तौर पर कुछ ऐसा, जैसे 'node' is not recognised।
Node.js की वेबसाइट पर जाइए।
वह दो वर्ज़न दिखाएगी (अगर वह आपका OS पहचान ले। वरना पहले अपना OS चुन लीजिए)।
अगर आपका node -v वर्ज़न इनमें से किसी एक से मेल खाता है, तो सब ठीक है।
अगर नहीं खाता, तो हमारा सुझाव है कि आप Node.js LTS इस्तेमाल कीजिए।
अगर आपको चिंता है कि अपग्रेड करने से आपके सिस्टम पर कुछ खराब हो सकता है, तो आप यह मानकर आगे बढ़ सकते हैं कि सब कुछ ठीक है;
लेकिन कुछ अनपेक्षित होने पर शायद हम मदद न कर पाएँ।
Node.js इंस्टॉल करने के दो-तीन तरीके हैं:
दोनों तरीके Windows, macOS और Linux पर काम करते हैं। अगर आपको समझ नहीं आ रहा कि क्या करें, तो इंस्टॉलर इस्तेमाल करना सबसे आसान है।
इंस्टॉलर का काम पूरा होने के बाद, या पैकेज मैनेजर के काम खत्म होने के बाद, या बाइनरी कॉपी हो जाने और निर्देशों का पालन कर लेने के बाद, यह जाँच लेना अच्छा रहता है कि सब कुछ ठीक है।
Terminal, cmd, Powershell, bash, ...)node -vवर्ज़न वही होना चाहिए जो वेबसाइट पर दिख रहा है।
[!NOTE] नया टर्मिनल विंडो खोलना ज़रूरी है। इंस्टॉलेशन पूरा होने के बाद जो टर्मिनल विंडो पहले से खुली थीं, वे शायद रीफ्रेश नहीं हुई हों। इसका मतलब है कि खुली हुई टर्मिनलों को पता ही नहीं कि कोई नया प्रोग्राम इंस्टॉल हुआ है।
[!IMPORTANT] > मदद:
'node' is not recognisedअगर आपने आधिकारिक इंस्टॉलर इस्तेमाल किया है, तो आपका
PATHअपने आप कॉन्फ़िगर हो जाना चाहिए था, लेकिन अगर आपकी शेल को ग्लोबली इंस्टॉल किए गए मॉड्यूल ढूँढने में दिक्कत आ रही हो, या अगर आप Node.js को सोर्स से बिल्ड करते हैं, तो अपनेPATHको अपडेट करके उसमेंnpmकी बाइनरीज़ जोड़िए।macOS और Linux पर आप ऐसा करने के लिए नीचे दी गई लाइन
~/.bash_profileया~/.zshrcमें जोड़ सकते हैं:export PATH=/usr/local/share/npm/bin:$PATHWindows पर स्टार्ट मेन्यू खोलिए और "environment variables" खोजिए। आपको
PATHएंट्री एडिट करनी होगी और यहाँnpmकी बाइनरीज़ का पाथ जोड़ना होगा। आम तौर पर येC:\Program Files\nodejsमें मिलती हैं। अगर आपFile Explorerसे यहाँ जाएँ, तो आपकोnode.exe,npm.batऔरnpx.batमिलेंगे।जो भी टर्मिनल खुली हैं, उन्हें बंद कीजिए और एक नई टर्मिनल खोलिए।
इस ट्रैक के साथ काम करने वाला वर्ज़न-आधारित पैकेज मैनेजर इस्तेमाल करने के लिए, corepack को एक बार चालू करना ज़रूरी है:
corepack enable pnpm
अपने OS के लिए Exercism CLI डाउनलोड करने के लिए इन निर्देशों का पालन कीजिए।
CLI सेट अप और कॉन्फ़िगर हो जाने के बाद, पहला अभ्यास डाउनलोड कीजिए, जो है hello-world:
exercism download --exercise=hello-world --track=javascript
इसके बाद हर अभ्यास को टेस्ट चलाने के लिए कुछ टूल चाहिए होते हैं। इन्हें हर अभ्यास की डायरेक्टरी में यह कमांड चलाकर इंस्टॉल किया जा सकता है:
corepack pnpm install
चूँकि यह ट्रैक pnpm पर आ गया है, आपको डिस्क स्पेस की चिंता करने की ज़रूरत नहीं है। pnpm देखिए, जो यह सुनिश्चित करता है कि हर पैकेज-वर्ज़न की सिर्फ एक ही कॉपी डिस्क पर इंस्टॉल हो।
लेकिन corepack क्या है और यह काम क्यों करता है?
JavaScript ट्रैक पूरा करने के लिए आपको यह जानकारी ज़रूरी नहीं है, लेकिन अगर आप जानने के इच्छुक हैं कि अभी हुआ क्या, तो अगले पैराग्राफ आपके लिए हैं:
यह इसलिए काम करता है क्योंकि
corepackएक टूल है जो Node.js के साथ ही आता है, और Node.js ऊपर दिए गए चरणों से इंस्टॉल हुआ है। यह पैकेज मैनेजरpnpmको इंस्टॉल कर सकता है। यह सिस्टम को कॉन्फ़िगर करता है।corepackकमांड एकpackage.jsonफाइल ढूँढता है, जो हर अभ्यास फोल्डर में मौजूद होती है। फिर यहpackageManagerदेखता है, जोpnpmसे मेल खाता है, इसलिए यह आगे बढ़ सकता है। ज़रूरत पड़ने पर यह पहलेpnpmको अपग्रेड कर देता है। यह फाइल ऊपर बताई गई"dependencies"भी सूचीबद्ध करती है, जिन्हेंpnpmडाउनलोड करके एक लोकल कैश में रख देता है।
package.jsonमें मौजूद स्क्रिप्ट लोकल कैश की बाइनरीज़ इस्तेमाल करती हैं, और इन्हीं स्क्रिप्ट से टेस्ट चलाए जाते हैं, जैसा किexerciseके विवरण में बताया गया है।