इस सुविधा के लिए Mellowtel संस्करण 1.6.2 या उच्चतर की आवश्यकता है। यह पिछले संस्करणों की तुलना में एक ब्रेकिंग परिवर्तन है।
Mellowtel एक वैकल्पिक सुविधा प्रदान करता है जो आपको अधिक अनुरोधों को संभालने और इसलिए अधिक कमाई करने की अनुमति देता है। इस सुविधा को “Meucci” कहा जाता है।
src निर्देशिका में, या जहाँ भी आपके js फ़ाइलें हैं, meucci.js नामक एक फ़ाइल बनाएँ और निम्नलिखित कोड जोड़ें। सुनिश्चित करें कि यह फ़ाइल आपके अंतिम बिल्ड (/dist) निर्देशिका में शामिल हो।यदि आपने प्रारंभिक webpack कॉन्फ़िग सेटअप का पालन किया है, तो आप बस इस फ़ाइल को अपने webpack कॉन्फ़िग में entry ऑब्जेक्ट में जोड़ सकते हैं।
import ModuleMeucci from "@mellowtel/module-meucci";let moduleMeucci;(async () => { moduleMeucci = new ModuleMeucci(); await moduleMeucci.init();})();
सुनिश्चित करें कि आपकी अंतिम बिल्ड निर्देशिका में meucci.js फ़ाइल शामिल है।यदि आपने प्रारंभिक webpack कॉन्फ़िग सेटअप का पालन किया है, तो आप बस इस फ़ाइल को अपने webpack कॉन्फ़िग में entry ऑब्जेक्ट में जोड़ सकते हैं।
अपने प्रोजेक्ट रूट में build-meucci.js फ़ाइल बनाएँ और निम्नलिखित सामग्री जोड़ें:
const esbuild = require('esbuild')const fs = require('fs')const path = require('path')// फ़ंक्शन जो एक निर्देशिका के अस्तित्व के लिए प्रतीक्षा करता हैconst waitForDirectory = async (dir, timeout = 10000) => { const start = Date.now() while (!fs.existsSync(dir)) { if (Date.now() - start > timeout) { throw new Error(`निर्देशिका के लिए समय समाप्त: ${dir}`) } await new Promise(resolve => setTimeout(resolve, 100)) }}// बिल्ड फ़ंक्शन बनाएँasync function buildMeucci() { // बंडल का निर्माण करें await esbuild.build({ entryPoints: ['src/meucci.ts'], // TODO: अपने meucci.ts फ़ाइल के पथ के साथ बदलें bundle: true, outfile: 'meucci.bundled.js', platform: 'browser', format: 'iife', minify: true, target: ['es2020'], define: { 'process.env.NODE_ENV': '"production"' } }) // बंडल की गई फ़ाइल पढ़ें const bundledContent = fs.readFileSync('meucci.bundled.js', 'utf8') // dev और prod निर्देशिकाओं में कॉपी करें const directories = [ 'build/chrome-mv3-dev', 'build/chrome-mv3-prod', 'build/firefox-mv2-dev', 'build/firefox-mv2-prod', 'build/safari-mv2-dev', 'build/safari-mv2-prod', 'build/opera-mv3-dev', 'build/opera-mv3-prod' ] // TODO: अपने dev और prod निर्देशिकाओं के पथ के साथ बदलें // सभी निर्देशिकाओं को एक साथ संसाधित करें await Promise.all(directories.map(async (dir) => { try { console.log(`निर्देशिका के लिए प्रतीक्षा कर रहा है: ${dir}`) await waitForDirectory(dir) // बंडल की गई फ़ाइल लिखें fs.writeFileSync(path.join(dir, 'meucci.js'), bundledContent) console.log(`${dir} में meucci.js जोड़ा गया`) } catch (err) { console.log(`${dir} को छोड़ते हुए - ${err.message}`) } })) // अस्थायी फ़ाइल को साफ करें fs.unlinkSync('meucci.bundled.js')}buildMeucci().catch(err => { console.error(err) process.exit(1)})
दोनों कार्यान्वयनों के लिए, अपने कंटेंट स्क्रिप्ट में initContentScript मेथड को Meucci फ़ाइल के सही पथ के साथ शामिल करने के लिए संशोधित करें:
// मानक कार्यान्वयन के लिएawait initContentScript({ meucciFilePath: "meucci.js"});
Plasmo फ्रेमवर्क के लिए, आप निम्नलिखित का उपयोग कर सकते हैं:
// Plasmo फ्रेमवर्क के लिएawait initContentScript({ meucciFilePath: "meucci.js"});
यदि आपके पास Pascoli भी सक्षम है, तो आप निम्नलिखित का उपयोग कर सकते हैं:
await initContentScript({ pascoliFilePath: "pascoli.html", // या "tabs/pascoli.html" यदि Plasmo फ्रेमवर्क का उपयोग कर रहे हैं meucciFilePath: "meucci.js"});