WebAssembly को लोकली इंस्टॉल करना

Exercism के अभ्यास अपनी मशीन पर हल करने के लिए WebAssembly को लोकली इंस्टॉल करना सीखिए।


इस ट्रैक में WebAssembly के लिए रनटाइम देने का काम हर जगह Node.js से होता है। इसका मतलब है कि हम मानकर चलते हैं कि आपके कंप्यूटर पर JavaScript का कोई भी कोड Node.js की मदद से ही चलेगा।

ट्रैक की आवश्यकताएँ

बहुत-से कंप्यूटरों में Node.js पहले से इंस्टॉल मिलता है, या वह पहले इंस्टॉल किया गया हो सकता है, या किसी डिपेंडेंसी के रूप में इंस्टॉल हो गया हो सकता है। इसलिए कुछ भी करने से पहले यह जाँच लेना ठीक रहेगा कि यह पहले से इंस्टॉल है या नहीं:

  1. एक टर्मिनल खोलिए (Terminal, cmd, Powershell, bash, ...)
  2. node -v चलाइए

अगर Node.js इंस्टॉल है, तो एक संस्करण दिखाई देगा। इस संस्करण को लिख लीजिए। अगर Node.js इंस्टॉल नहीं है, तो एक एरर दिखाई देगी। आम तौर पर कुछ ऐसी: 'node' is not recognised.

Node.js

अगर Node.js पहले से इंस्टॉल है

Node.js की वेबसाइट पर जाइए। वह दो संस्करण दिखाएगी (बशर्ते वह आपका OS पहचान ले। वरना पहले अपना OS चुनिए)। अगर आपके node -v का संस्करण इनमें से किसी एक से मेल खाता है, तो सब ठीक है। अगर नहीं खाता, तो हमारा सुझाव है कि आप Node.js LTS इस्तेमाल कीजिए। अगर आपको चिंता है कि अपग्रेड करने से आपके सिस्टम पर कुछ टूट सकता है, तो आप यह मानकर आगे बढ़ सकते हैं कि सब ठीक है; हालाँकि कुछ अनपेक्षित होने पर हम शायद सपोर्ट न दे पाएँ।

अगर Node.js इंस्टॉल नहीं है

Node.js इंस्टॉल करने के कुछ तरीके हैं:

दोनों तरीके Windows, macOS और Linux पर काम करते हैं। अगर आपको समझ नहीं आ रहा कि क्या करें, तो इंस्टॉलर इस्तेमाल करना सबसे आसान है।

  • हम LTS संस्करण इस्तेमाल करने का सुझाव देते हैं। Node.js की वेबसाइट पर भी इसे "ज़्यादातर उपयोगकर्ताओं के लिए" अनुशंसित बताया गया है।
  • वेबपेज पर दिए निर्देशों का और/या इंस्टॉलर के दौरान दिखने वाले निर्देशों का पालन कीजिए और Node.js इंस्टॉल कीजिए।

इंस्टॉलेशन की जाँच

इंस्टॉलर का काम पूरा हो जाने के बाद, या पैकेज मैनेजर के काम पूरा कर लेने के बाद, या बाइनरी कॉपी हो जाने और निर्देशों का पालन कर लेने के बाद, यह जाँच लेना अच्छा है कि सब कुछ ठीक है।

  1. एक टर्मिनल खोलिए (Terminal, cmd, Powershell, bash, ...)
  2. node -v चलाइए

संस्करण वही होना चाहिए जो वेबसाइट पर दिख रहा है।

ध्यान दें: एक नई टर्मिनल विंडो खोलना ज़रूरी है। इंस्टॉलेशन पूरा होने के बाद खुली हुई टर्मिनल विंडो शायद रीफ्रेश न हुई हों। इसका मतलब है कि खुली हुई टर्मिनल विंडो को यह पता नहीं चलता कि कोई नया प्रोग्राम इंस्टॉल हुआ है।

मदद: 'node' is not recognised

अगर आपने आधिकारिक इंस्टॉलर इस्तेमाल किया है, तो आपका PATH अपने आप सेट हो जाना चाहिए था। लेकिन अगर आपकी शेल को ग्लोबली इंस्टॉल किए गए मॉड्यूल ढूँढने में दिक्कत हो रही है, या आपने Node.js को सोर्स से बनाया है, तो अपने PATH में npm बाइनरी जोड़ दीजिए।

macOS और Linux पर आप यह काम नीचे दी गई पंक्ति को ~/.bash_profile या ~/.zshrc में जोड़कर कर सकते हैं:

export PATH=/usr/local/share/npm/bin:$PATH

Windows पर स्टार्ट मेन्यू खोलिए और "environment variables" खोजिए। आपको PATH एंट्री एडिट करके उसमें npm बाइनरी का रास्ता जोड़ना होगा। आम तौर पर ये C:\Program Files\nodejs में मिलती हैं। अगर आप यहाँ अपने File Explorer से जाते हैं, तो आपको node.exe, npm.bat और npx.bat मिलेंगी।

खुली हुई सारी टर्मिनल बंद कीजिए और एक नई टर्मिनल खोलिए।

अभ्यास की आवश्यकताएँ

अपने OS के लिए Exercism CLI डाउनलोड करने के लिए इन निर्देशों का पालन कीजिए।

CLI सेट अप और कॉन्फ़िगर हो जाने के बाद, पहला अभ्यास डाउनलोड कीजिए - hello-world:

exercism download --exercise=hello-world --track=wasm

इसके बाद हर अभ्यास में टेस्ट चलाने के लिए कुछ टूल चाहिए। इन्हें हर अभ्यास की डायरेक्टरी में यह कमांड चलाकर इंस्टॉल किया जा सकता है:

npm install

मदद: '<package>' is missing / cannot be found

अगर यह आपको अपने अभ्यास को अपग्रेड करने के बाद दिखता है, तो npm 7 में आपका स्वागत है। इसे ठीक करने के लिए node_modules और package-lock.json डिलीट कीजिए और कमांड फिर से चलाइए।

अगर आपको डिस्क स्पेस की चिंता है और एक और टूल इंस्टॉल करने में कोई दिक्कत नहीं है, तो pnpm पर एक नज़र डालिए, जो यह सुनिश्चित करता है कि हर पैकेज के हर संस्करण की सिर्फ एक ही प्रति डिस्क पर इंस्टॉल हो। ऐसे में npm install की जगह pnpm install चलाइए, और सब कुछ अपेक्षा के अनुसार काम करेगा।

लेकिन npm है क्या, और यह काम क्यों करता है?

JavaScript ट्रैक पूरा करने के लिए आपको यह जानकारी ज़रूरी नहीं है, लेकिन अगर आप जानने के इच्छुक हैं कि अभी क्या हुआ, तो अगले पैराग्राफ आपके लिए हैं:

यह इसलिए काम करता है क्योंकि npm एक पैकेज मैनेजर है जो Node.js के साथ ही बंडल होकर आता है, और Node.js ऊपर बताए गए चरणों के अनुसार इंस्टॉल किया गया है। npm कमांड एक package.json फाइल ढूँढती है, जो हर अभ्यास फोल्डर में मौजूद होती है। इस फाइल में ऊपर लिखी "dependencies" की सूची होती है, जिन्हें npm डाउनलोड करके node_modules फोल्डर में रख देता है।

package.json की स्क्रिप्टें लोकल node_modules फोल्डर की बाइनरी इस्तेमाल करती हैं, और इन्हीं स्क्रिप्ट से टेस्ट चलते हैं, जैसा exercise के विवरण में लिखा है।