Heim > Web-Frontend > js-Tutorial > Wie verwaltet man jQuery-Plugin-Abhängigkeiten effektiv mit Webpack?

Wie verwaltet man jQuery-Plugin-Abhängigkeiten effektiv mit Webpack?

Mary-Kate Olsen
Freigeben: 2024-12-04 13:35:12
Original
271 Leute haben es durchsucht

How to Effectively Manage jQuery Plugin Dependencies with Webpack?

So verwalten Sie jQuery-Plugin-Abhängigkeiten in Webpack

Bei der Verwendung von Webpack ist es üblich, Anwendungscode und Bibliotheken in separaten Bundles zu organisieren. Beispielsweise könnte man eine „bundle.js“ für den gesamten benutzerdefinierten Code und eine „vendors.js“ für Bibliotheken wie jQuery und React erstellen. Bei der Einbindung von Plugins, die von jQuery abhängen und in „vendors.js“ gewünscht werden, treten jedoch Herausforderungen auf.

ProvidePlugin: Global Variable Injection

Ein Ansatz besteht darin, das zu nutzen ProvidePlugin, das implizite Globale einfügt, wenn auf bestimmte Bezeichner wie „$“ oder „jQuery“ gestoßen wird. Durch die Konfiguration des Webpacks kann man es anweisen, „var $“ voranzustellen, wenn global auf „$“ gestoßen wird.

Beispiel:

plugins: [
    new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery"
    })
]
Nach dem Login kopieren

imports-loader : Diese Bindungskonfiguration

Der Imports-Loader ermöglicht die manuelle Variableninjektion. Einige ältere Module gehen davon aus, dass „this“ als Fensterobjekt vorhanden ist, was zu Konflikten mit CommonJS-Kontexten führen kann, in denen „this“ „module.exports“ entspricht. Der Import-Loader kann dieses Verhalten überschreiben und „this“ an das Fensterobjekt binden.

Beispiel:

module: {
    loaders: [
        {
            test: /[\/\]node_modules[\/\]some-module[\/\]index\.js$/,
            loader: "imports-loader?this=>window"
        }
    ]
}
Nach dem Login kopieren

Import-Loader: AMD-Deaktivierung

Bestimmte Module unterstützen mehrere Modulstile, einschließlich AMD und CommonJS. Sie können jedoch vorrangig unkonventionelle Exportmethoden definieren und anwenden. Dies kann umgangen werden, indem CommonJS erzwungen wird, indem „define = false“ mit dem Imports-Loader festgelegt wird.

Beispiel:

module: {
    loaders: [
        {
            test: /[\/\]node_modules[\/\]some-module[\/\]index\.js$/,
            loader: "imports-loader?define=>false"
        }
    ]
}
Nach dem Login kopieren

Script-Loader: Globaler Skriptimport

Wenn globale Variablen kein Problem darstellen und die einfache Ausführung älterer Skripte das Problem ist Zielsetzung kann der Script-Loader verwendet werden. Es führt Module in einem globalen Kontext aus, ähnlich der Verwendung eines

Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage