J'essaie de faire quelque chose qui, à mon avis, devrait être possible, mais je ne comprends vraiment pas comment le faire uniquement à partir de la documentation du Webpack.
J'écris une bibliothèque JavaScript avec plusieurs modules qui peuvent ou non dépendre les uns des autres. En plus de cela, jQuery est utilisé par tous les modules et certains d'entre eux peuvent avoir besoin de plugins jQuery. Cette bibliothèque sera ensuite utilisée sur plusieurs sites Web différents qui peuvent nécessiter certains ou tous les modules.
Définir les dépendances entre mes modules était très facile, mais définir leurs dépendances tierces semble être plus difficile que je ne le pensais.
Ce que je voudrais réaliser : pour chaque application, je souhaite avoir deux fichiers bundle, l'un avec les dépendances tierces nécessaires et l'autre avec les modules nécessaires de ma bibliothèque.
Exemple : imaginons que ma bibliothèque comporte les modules suivants:
- a (nécessite: jquery, jquery.plugin1)
- b (nécessite: jquery, a)
- c (nécessite: jquery, jquery.ui, a, b)
- d (nécessite: jquery, jquery.plugin2, a)
Et j'ai une application (voyez-la comme un fichier d'entrée unique) qui nécessite les modules a, b et c. Webpack dans ce cas doit générer les fichiers suivants:
- bundle fournisseur : avec jquery, jquery.plugin1 et jquery.ui;
- ensemble de sites Web : avec les modules a, b et c;
En fin de compte, je préférerais avoir jQuery en tant que global afin de ne pas avoir besoin de l'exiger sur chaque fichier (je pourrais l'exiger uniquement sur le fichier principal, par exemple). Et les plugins jQuery ne feraient qu'étendre le $ global au cas où ils seraient nécessaires (ce n'est pas un problème s'ils sont disponibles pour d'autres modules qui n'en ont pas besoin).
En supposant que cela soit possible, quel serait un exemple de fichier de configuration Webpack dans ce cas? J'ai essayé plusieurs combinaisons de chargeurs, d'externals et de plugins sur mon fichier de configuration, mais je ne comprends pas vraiment ce qu'ils font et lesquels dois-je utiliser. Je vous remercie!