मुझे रेमोशन सोर्स कोड में "डिजिट" नाम की एक फ़ाइल मिली।
रिमोशन आपको प्रोग्रामेटिक रूप से वीडियो बनाने में मदद करता है।
इस लेख में, हम निम्नलिखित अवधारणाओं को देखेंगे:
मुझे ओपन सोर्स में रीडमेस में से एक में "डिजिट" का उल्लेख देखना याद है, लेकिन मुझे याद नहीं आया कि यह कौन सा रिपॉजिटरी था इसलिए मैंने गूगल पर डिजिट का मतलब खोजा और यह डिजिट एनपीएम पैकेज पाया।
सरल शब्दों में, आप केवल नवीनतम कमिट डाउनलोड करके जीथब रिपॉजिटरी की एक प्रति बनाने के लिए डिजिट का उपयोग कर सकते हैं
संपूर्ण गिट इतिहास के बजाय।
इस पैकेज के बारे में अधिक पढ़ने के लिए डिजिट के लिए आधिकारिक एनपीएम पैकेज पर जाएं।
आप इस डिजिट पैकेज का उपयोग Gitlab या Bitbucket से रेपो डाउनलोड करने के लिए भी कर सकते हैं, इसलिए यह केवल Github रिपॉजिटरी तक सीमित नहीं है।
# download from GitLab degit gitlab:user/repo # download from BitBucket degit bitbucket:user/repo degit user/repo # these commands are equivalent degit github:user/repo
यहां जावास्क्रिप्ट में एक नमूना उपयोग है:
const degit = require('degit'); const emitter = degit('user/repo', { cache: true, force: true, verbose: true, }); emitter.on('info', info => { console.log(info.message); }); emitter.clone('path/to/dest').then(() => { console.log('done'); });
एक सरल डिजिट फ़ंक्शन बनाने का तरीका समझने के लिए, आइए रेमोशन की डिजिट.ts फ़ाइल से कोड को तोड़ें। यह फ़ाइल डिजिट एनपीएम पैकेज के मूल संस्करण को लागू करती है: पूरा इतिहास डाउनलोड किए बिना GitHub रिपॉजिटरी की नवीनतम स्थिति प्राप्त करना।
import https from 'https'; import fs from 'node:fs'; import {tmpdir} from 'node:os'; import path from 'node:path'; import tar from 'tar'; import {mkdirp} from './mkdirp';
export function fetch(url: string, dest: string) { return new Promise((resolve, reject) => { https.get(url, (response) => { const code = response.statusCode as number; if (code >= 400) { reject( new Error( `Network request to ${url} failed with code ${code} (${response.statusMessage})`, ), ); } else if (code >= 300) { fetch(response.headers.location as string, dest) .then(resolve) .catch(reject); } else { response .pipe(fs.createWriteStream(dest)) .on('finish', () => resolve()) .on('error', reject); } }).on('error', reject); }); }
रिपॉजिटरी डाउनलोड करने के बाद, टारबॉल की सामग्री को निकालना आवश्यक है:
function untar(file: string, dest: string) { return tar.extract( { file, strip: 1, C: dest, }, [], ); }
मुख्य डिजिट फ़ंक्शन सब कुछ एक साथ जोड़ता है, निर्देशिका निर्माण को संभालता है, रिपॉजिटरी को लाता है और निकालता है:
export const degit = async ({ repoOrg, repoName, dest, }: { repoOrg: string; repoName: string; dest: string; }) => { const base = path.join(tmpdir(), '.degit'); const dir = path.join(base, repoOrg, repoName); const file = `${dir}/HEAD.tar.gz`; const url = `https://github.com/${repoOrg}/${repoName}/archive/HEAD.tar.gz`; mkdirp(path.dirname(file)); await fetch(url, file); mkdirp(dest); await untar(file, dest); fs.unlinkSync(file); };
mkdirp का उपयोग बनाने के लिए किया जाता है
एक निर्देशिका पुनरावर्ती रूप से।
मैंने पाया कि जब आप इंस्टॉलेशन कमांड चलाते हैं तो रेमोशन टेम्प्लेट डाउनलोड करने के लिए डिजिट का उपयोग करता है:
npx create-video@latest
यह कमांड आपको एक टेम्पलेट चुनने के लिए कहता है, यहीं पर डिजिट डाउनलोड करने के लिए क्रिया में आता है
चयनित टेम्पलेट की नवीनतम प्रतिबद्धता
आप सबूत के लिए क्रिएट-वीडियो पैकेज से इस कोड की जांच कर सकते हैं।
ओपन सोर्स में उपयोग की जाने वाली सर्वोत्तम प्रथाओं से प्रेरित निःशुल्क पाठ्यक्रम प्राप्त करें।
वेबसाइट: https://ramunarasinga.com/
लिंक्डइन: https://www.linkedin.com/in/ramu-narasinga-189361128/
जीथब: https://github.com/Ramu-Narasinga
ईमेल: [email protected]
ओपन सोर्स में उपयोग की जाने वाली सर्वोत्तम प्रथाओं को जानें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3