ts-node क्या है और इसकी आवश्यकता क्यों है?
ts-node Node.js के लिए एक TypeScript इंजन है जो आपको TypeScript फ़ाइलों को बिना पहले JavaScript में कंपाइल किए सीधे चलाने की सुविधा देता है। यह REPL (Read-Eval-Print Loop) और कमांड लाइन टूल दोनों के रूप में काम करता है, जिससे TypeScript को Node.js इकोसिस्टम में आसानी से इंटीग्रेट किया जा सकता है।
मुख्य उपयोग के मामले:
- तेज़ डेवलपमेंट और प्रोटोटाइपिंग — हर बदलाव के लिए कंपाइलेशन का इंतज़ार न करें
- स्क्रिप्ट चलाना — प्रोडक्शन में TypeScript फ़ाइलों को चलाना (सावधानी के साथ)
- टेस्टिंग — TypeScript में लिखे गए टेस्ट चलाना
- इंटरैक्टिव डेवलपमेंट — TypeScript के साथ प्रयोग करने के लिए REPL मोड
- प्रोजेक्ट माइग्रेशन — JavaScript से TypeScript में धीरे-धीरे बदलाव
सामान्य तरीके (पहले tsc से कंपाइल करना और फिर node से चलाना) के विपरीत, ts-node डेवलपमेंट प्रक्रिया को अधिक सहज और तेज़ बनाता है।
ts-node की स्थापना (इंस्टॉलेशन)
इंस्टॉलेशन npm (Node.js पैकेज मैनेजर) के माध्यम से किया जाता है। Python डेवलपर्स के लिए: यह pip install के समान है।
# ग्लोबल इंस्टॉलेशन (हर जगह उपलब्ध)
npm install -g ts-node
# लोकल इंस्टॉलेशन (प्रोजेक्ट के लिए अनुशंसित)
npm install --save-dev ts-node
# TypeScript के साथ इंस्टॉलेशन (अगर पहले से नहीं है)
npm install --save-dev ts-node typescript
# विशिष्ट वर्जन के साथ काम करने के लिए
npm install --save-dev ts-node@10.9.2 typescript@5.3.3
इंस्टॉल करने के बाद वर्जन चेक करें:
ts-node --version
# आउटपुट: v10.9.2
कोड उदाहरण के साथ त्वरित शुरुआत
एक फ़ाइल बनाएं hello.ts:
// hello.ts
interface Greeting {
name: string;
age: number;
}
function greet(person: Greeting): string {
return `नमस्ते, ${person.name}! आपकी उम्र ${person.age} साल है।`;
}
const user: Greeting = { name: "राहुल", age: 25 };
console.log(greet(user));
बिना कंपाइलेशन के चलाएं:
ts-node hello.ts
# आउटपुट: नमस्ते, राहुल! आपकी उम्र 25 साल है।
तुलना के लिए, सामान्य तरीके में दो चरण लगते:
tsc hello.ts # hello.js में कंपाइल करें
node hello.js # कंपाइल की गई फ़ाइल चलाएं
ts-node के मुख्य तरीके और फंक्शन
1. ts-node [file.ts] — बेसिक फ़ाइल रन करना
विवरण: TypeScript फ़ाइल को चलाने के लिए मुख्य कमांड। ts-node स्वचालित रूप से कोड को कंपाइल और एक्ज़ीक्यूट करता है।
पैरामीटर:
file.ts— TypeScript फ़ाइल का पथ--projectया-P— tsconfig.json का पथ--transpile-only— केवल ट्रांसपाइलेशन (तेज़, लेकिन टाइप चेकिंग नहीं)
उदाहरण:
# सामान्य रन
ts-node app.ts
# कॉन्फ़िगरेशन के साथ
ts-node --project tsconfig.prod.json app.ts
# केवल ट्रांसपाइलेशन (तेज़)
ts-node --transpile-only app.ts
2. ts-node --eval — स्ट्रिंग से कोड चलाना
विवरण: बिना फ़ाइल बनाए, स्ट्रिंग के रूप में दिए गए TypeScript कोड को चलाने की सुविधा।
पैरामीटर:
-eया--eval— TypeScript कोड वाली स्ट्रिंग-pया--print— परिणाम प्रिंट करें
उदाहरण:
# सरल एक्सप्रेशन
ts-node -e "console.log('ts-node से नमस्ते!')"
# TypeScript फीचर्स के साथ
ts-node -e "
interface User { name: string }
const user: User = { name: 'प्रिया' };
console.log(user.name);
"
# परिणाम प्रिंट करना
ts-node -p "1 + 2"
3. ts-node --compiler-options — कंपाइलर ऑप्शन ओवरराइड करना
विवरण: अस्थायी रूप से कंपाइलर ऑप्शन को बदलने की सुविधा देता है।
पुस्तकालय में भी
Java में ZIP-आर्काइव के साथ कार्य: java.util.zip पर संपूर्ण मार्गदर्शिका
C# (.NET) में ऑब्जेक्ट सीरियलाइज़ेशन: एक संपूर्ण गाइड
ts-morph TypeScript: पूर्ण गाइड उदाहरणों के साथ
Java में लॉगिंग: सर्वश्रेष्ठ लाइब्रेरीज़ और समाधानों का अवलोकन
Go में ZIP आर्काइव के साथ काम करना: archive/zip पैकेज की पूरी गाइड