Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mellowtel.com/llms.txt

Use this file to discover all available pages before exploring further.

यह गाइड आपके ब्राउज़र एक्सटेंशन प्रोजेक्ट को Webpack के साथ सेट करने की प्रक्रिया को बताता है, जिसमें कई जावास्क्रिप्ट एंट्री पॉइंट्स और स्थैतिक एसेट प्रबंधन के लिए एक कॉन्फ़िगरेशन पर ध्यान केंद्रित किया गया है।

चरण 1: प्रारंभिक प्रोजेक्ट सेटअप

अपने प्रोजेक्ट को स्रोत फ़ाइलों, स्थैतिक एसेट्स, और अंतिम बंडल आउटपुट को समायोजित करने के लिए संरचित करें। आपका प्रोजेक्ट डायरेक्टरी कुछ इस तरह दिखना चाहिए:
your-extension/
├── public/            # स्थैतिक फ़ाइलें जैसे HTML, CSS, और मैनिफेस्ट शामिल करता है
│   ├── images/
│   ├── icons/
│   ├── manifest.json
│   └── popup.html
├── src/               # आपकी जावास्क्रिप्ट स्रोत कोड शामिल करता है
│   ├── background.js
│   ├── popup.js
│   ├── content_script.js
│   └── ... (कोई अन्य JS फ़ाइलें)
└── package.json       # NPM पैकेज फ़ाइल

चरण 2: Node.js और NPM सेट करना

सुनिश्चित करें कि आपके सिस्टम पर Node.js और NPM इंस्टॉल हैं। Node.js पैकेज इकोसिस्टम चलाने के लिए आवश्यक है, और NPM आपके प्रोजेक्ट की निर्भरताओं को प्रबंधित करने के लिए उपयोग किया जाता है।

चरण 3: Webpack और अन्य निर्भरताएँ इंस्टॉल करना

टर्मिनल में अपने प्रोजेक्ट की रूट डायरेक्टरी पर जाएं और यदि आपने पहले से नहीं किया है तो एक नया NPM प्रोजेक्ट प्रारंभ करें:
npm init -y
फिर, Webpack और आवश्यक लोडर्स और प्लगइन्स इंस्टॉल करें:
npm install --save-dev webpack webpack-cli babel-loader @babel/core @babel/preset-env copy-webpack-plugin file-loader
  • Webpack आपके जावास्क्रिप्ट और एसेट्स को बंडल करता है।
  • Babel आपको आधुनिक जावास्क्रिप्ट फीचर्स का उपयोग करने की अनुमति देता है।
  • CopyPlugin फ़ाइलों और डायरेक्टरीज़ को आपके बिल्ड डायरेक्टरी में कॉपी करता है।
  • File Loader किसी फ़ाइल पर import/require() को एक URL में हल करता है और फ़ाइल को आउटपुट डायरेक्टरी में एमिट करता है।

चरण 4: Webpack कॉन्फ़िगर करना

अपने प्रोजेक्ट रूट में एक webpack.config.js फ़ाइल बनाएं। इस फ़ाइल को आपके एंट्री पॉइंट्स, आउटपुट कॉन्फ़िगरेशन, विभिन्न फ़ाइल प्रकारों को लोड करने के लिए मॉड्यूल नियम, और अतिरिक्त कार्यक्षमता के लिए प्लगइन्स को परिभाषित करना चाहिए। यहां आपके webpack.config.js को दिए गए सेटअप के साथ कैसे दिखना चाहिए:
const path = require('path');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
    mode: 'development', // उत्पादन बिल्ड के लिए 'production' का उपयोग करें
    entry: {
        background: path.join(__dirname, 'src', 'background.js'),
        popup: path.join(__dirname, 'src', 'popup.js'),
        content_script: path.join(__dirname, 'src', 'content_script.js'),
    },
    output: {
        path: path.join(__dirname, 'dist'),
        filename: '[name].js',
        publicPath: ""
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            },
            {
                test: /\.js$/,
                exclude: /node_modules/
            },
            {
                test: /\.(png|svg|jpg|gif)$/,
                use: [
                    'file-loader',
                ],
            },
        ]
    },
    plugins: [
        new CopyPlugin({
            patterns: [
                { from: 'public', to: '' } // सभी एसेट्स और manifest.json को 'public' से 'dist' में कॉपी करें
            ],
        }),
    ]
};

चरण 5: मैनिफेस्ट और HTML फ़ाइलों को समायोजित करना

सुनिश्चित करें कि आपका manifest.json और कोई भी HTML फ़ाइलें स्क्रिप्ट्स और एसेट्स को सही ढंग से संदर्भित करती हैं। उदाहरण के लिए, स्क्रिप्ट्स dist फ़ोल्डर में आउटपुट होंगी, इसलिए पथों को तदनुसार अपडेट करें।

चरण 6: package.json में बिल्ड स्क्रिप्ट्स को एकीकृत करना

अपने प्रोजेक्ट को Webpack के साथ सेट करने और इसे पिछले चरणों में वर्णित के अनुसार कॉन्फ़िगर करने के बाद, आप npm स्क्रिप्ट्स का उपयोग करके बिल्ड और वॉच प्रक्रियाओं को स्वचालित करना चाहेंगे। अपनी package.json फ़ाइल खोलें और scripts ऑब्जेक्ट के भीतर निम्नलिखित स्क्रिप्ट्स जोड़ें:
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "build": "webpack --mode production",
  "watch": "webpack --mode development --watch"
},
यहाँ प्रत्येक स्क्रिप्ट क्या करती है:
  • "build": आपके एक्सटेंशन को उत्पादन मोड में बंडल करता है, आउटपुट को तैनाती के लिए अनुकूलित करता है। यह मोड मिनिफिकेशन और डेड कोड उन्मूलन जैसी अनुकूलन सक्षम करता है।
  • "watch": विकास मोड में Webpack चलाता है और आपकी फ़ाइलों में परिवर्तन के लिए वॉच करता है, जब भी कोई फ़ाइल संशोधित होती है, प्रोजेक्ट को स्वचालित रूप से पुनः संकलित करता है। यह विकास के दौरान परिवर्तनों पर त्वरित प्रतिक्रिया के लिए सहायक होता है।

चरण 7: एक्सटेंशन का परीक्षण और निर्माण

उत्पादन के लिए अपने एक्सटेंशन को बनाने के लिए, उपयोग करें:
npm run build
यह कमांड Webpack को --mode production फ्लैग के साथ बुलाता है, आपके प्रोजेक्ट को तैनाती के लिए अनुकूलित करता है। विकास के लिए, आप Webpack को अपनी फ़ाइलों को वॉच करने और जब भी परिवर्तन का पता चलता है, पुनः संकलित करने के लिए सेट कर सकते हैं:
npm run watch
यह विकास प्रक्रिया को सुगम बनाता है, क्योंकि आपको प्रत्येक परिवर्तन के बाद प्रोजेक्ट को मैन्युअल रूप से पुनः बनाना नहीं पड़ता।

चरण 7: एक्सटेंशन का परीक्षण

Chrome में अपने एक्सटेंशन का परीक्षण करने के लिए:
  1. Chrome ब्राउज़र में chrome://extensions/ पर जाएं।
  2. शीर्ष दाएं कोने में “Developer mode” सक्षम करें।
  3. “Load unpacked” पर क्लिक करें और अपने dist फ़ोल्डर का चयन करें।
यह परीक्षण और विकास उद्देश्यों के लिए एक्सटेंशन को स्थानीय रूप से इंस्टॉल करेगा।