हेलो!
आशा है आप बढ़िया होंगे! यह SMY है! 👋 चलिए शुरू करते हैं 🚀
विषय-सूची:
- ⚡
Some Background of SDK Development
- ⚡
Developing and running our first version
1️⃣ क्या -
एसडीके (जिसे कभी-कभी लाइब्रेरी के रूप में भी जाना जाता है) प्रौद्योगिकी से अतिरिक्त सुविधाएं प्राप्त करने के लिए अनुप्रयोगों में प्लग-इन के रूप में कार्य करता है।
2️⃣ क्यों -
टाइपस्क्रिप्ट के साथ SDK विकास, प्रकार सुरक्षा और दीर्घकालिक रखरखाव के कारण लंबे समय तक विश्वसनीयता प्रदान करता है।
3️⃣ कैसे -
SDK बनाने के लिए आवश्यक मूलभूत चरण निम्नलिखित हैं:
- सही वर्कफ़्लो सेटिंग्स के साथ प्रोजेक्ट को आरंभ करना.
- बंडलर का चयन करना, और उसका उद्देश्य समझना।
- विभिन्न वातावरणों पर SDK चलाने के लिए ESM, CJS, IIFE UMD को समझना।
- एनपीएम, सिमेंटिक संस्करण और लाइसेंस पर लाइब्रेरी के रूप में प्रकाशन।
- एसपीए के लिए एनपीएम और ब्राउज़रों के लिए सीडीएन।
भाग 1 में, हम बुनियादी समझ हासिल करने के लिए अपना पहला बुनियादी SDK बनाने जा रहे हैं।
चरण 1: प्रोजेक्ट आरंभ करें
प्रोजेक्ट को नए फ़ोल्डर में सेट करने के लिए निम्नलिखित कमांड चलाएँ:
npm init -y
"-y"
सभी अनुवर्ती संकेतों के लिए डिफ़ॉल्ट रूप से हाँ होता है। आप इसे बाद में Package.json में बदल सकते हैं जैसे कि लेखक, लाइसेंस, संस्करण, आदि।
नवीनतम EcmaScript मॉड्यूल सिस्टम (ESM) के साथ काम करने के लिए package.json
पर जाएं और type: module
जोड़ें।
आपका package.json
निम्न प्रकार दिखना चाहिए:
{ "name": "ts-lib", "version": "1.0.0", "description": "SDK development tutorial", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "type": "module", "keywords": [], "author": "", "license": "ISC" }
चरण 2: फंडामेंटल डेव लाइब्रेरीज़ स्थापित करें
- टाइपप्रति
-
@types/node
- NodeJS के साथ TypeScript कार्य करने के लिए। -
tsup
- अपने टाइपस्क्रिप्ट लाइब्रेरीज़ को बंडल करने का सबसे सरल और तेज़ तरीका।
कॉपी
npm i typescript @types/node tsup -D
चरण 3: TypeScript सेटिंग्स के लिए tsconfig
सेटअप करें
प्रोजेक्ट के मूल में tsconfig.json
फ़ाइल बनाएँ।
कॉपी
touch tsconfig.json
फ़ाइल पर जाएँ, और निम्नलिखित कॉन्फ़िगरेशन पेस्ट करें:
{ "compilerOptions": { /* Base Options: */ "esModuleInterop": true, "allowImportingTsExtensions": true, "emitDeclarationOnly": true, "skipLibCheck": true, "target": "es2022", "allowJs": true, "resolveJsonModule": true, "moduleDetection": "force", "isolatedModules": true, "verbatimModuleSyntax": true, /* Strictness */ "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, /* If transpiling with TypeScript: */ "module": "NodeNext", "sourceMap": true, "outDir": "dist", /* AND if you're building for a library: */ "declaration": true, /* If your code runs in the DOM: */ "lib": ["es2022", "dom", "dom.iterable"] }, "exclude": ["node_modules", "dist"] }
आप प्रत्येक संपत्ति के बारे में अधिक गहराई से जानने के लिए उस पर माउस घुमा सकते हैं।
यहां समझने वाली मूलभूत बात यह है:
"module": "NodeNext", "sourceMap": true, "outDir": "dist",
"
NodeNext
लाइब्रेरीज़ लिखने के लिए सही विकल्प है क्योंकि यह आपको मॉड्यूल स्पेसिफ़ायर के साथ ESM उत्सर्जित करने से रोकता है जो केवल बंडलर में काम करता है लेकिन Node.js में क्रैश हो जाएगा। पारंपरिक कोड लिखते समय, सामान्य ज्ञान का उपयोग करते हुए, और उच्च-गुणवत्ता वाली निर्भरताओं पर भरोसा करते हुए, इसका आउटपुट आमतौर पर बंडलर और अन्य रनटाइम के साथ अत्यधिक संगत होता है।" आप इसके बारे में यहाँ और अधिक जान सकते हैं:https://blog.andrewbran.ch/is-nodenext-right-for-libraries-that-dont-target-node-js/
sourceMap
- स्रोत फ़ाइलों के निर्माण को सक्षम करता है। ये फ़ाइलें डीबगर्स और अन्य उपकरणों को उत्सर्जित जावास्क्रिप्ट फ़ाइलों के साथ काम करते समय मूल TypeScript स्रोत कोड प्रदर्शित करने की अनुमति देती हैं। आप इसे उत्पादन के लिए अक्षम कर सकते हैं।
outDir
- सभी उत्सर्जित फ़ाइलों के लिए एक आउटपुट फ़ोल्डर निर्दिष्ट करें।
/* AND if you're building for a library: */ "declaration": true, /* If your code runs in the DOM: */ "lib": ["es2022", "dom", "dom.iterable"]
declaration
- अपने प्रोजेक्ट में टाइपस्क्रिप्ट और जावास्क्रिप्ट फ़ाइलों से .d.ts फ़ाइलें उत्पन्न करें।
lib
- बंडल लाइब्रेरी घोषणा फ़ाइलों का एक सेट निर्दिष्ट करें जो लक्ष्य रनटाइम वातावरण का वर्णन करता है।es2022
रिएक्ट जैसे नोड अनुप्रयोगों के लिए है, औरdom
औरdom.iterable
ब्राउज़र में लाइब्रेरी चलाने के लिए है।
चरण 4: अपना पहला कोड लिखें
एक index.ts
फ़ाइल बनाएं, और निम्नलिखित मूल कोड लिखें:
const add = (a: number, b: number): number => a + b; const subtract = (a: number, b: number): number => a - b; export { add, subtract };
अपना पहला कोड बनाएं:
कॉपी
tsup ./index.ts
अब आप देख सकते हैं कि हमारे पास एक dist
फ़ोल्डर है जिसमें आउटपुट फ़ाइल index.cjs
है
आइये अपना पहला SDK एकीकृत करें और चलाएं!
एक app.js
फ़ाइल बनाएं, और निम्नलिखित कोड पेस्ट करें:
import { add, subtract } from "./dist/index.cjs"; console.log(add(1, 2)); console.log(subtract(2, 1));
चूंकि हमने अपना SDK प्रकाशित नहीं किया है, इसलिए हम सीधे स्थानीय बिल्ड से लिंक कर रहे हैं।
अब, अपना पहला ऐप चलाएँ
node app.js
आपको निम्नलिखित आउटपुट दिखना चाहिए:
3 1
बधाई हो 🎉🥳 🚀🚀🚀 हमने अभी-अभी अपना पहला SDK बनाया और चलाया है!
ऊपर लपेटकर:
हमने अपना पहला SDK बनाने और चलाने के लिए बुनियादी कदम पूरे कर लिए हैं। भाग 2 पर जाएँ, जहाँ हम एक बुनियादी फ़ोल्डर संरचना का निर्माण करेंगे, और एक बाहरी API एंडपॉइंट एकीकृत करेंगे 🚀
.....
अब, आप अपना खुद का SDK बनाने के लिए ज्ञान से लैस हैं। हैप्पी कोडिंग! 🚀
बस इतना ही, दोस्तों! आशा है कि यह आपके लिए एक अच्छा लेख रहा होगा। धन्यवाद! ✨
👉 मुझे फॉलो करें