J'ai un grand projet côté client que je voudrais regrouper en 2 faisceaux au lieu de 1.RequireJS Optimizer comprennent dur
Ceci est mon arbre de dépendance:
Le sortie désirée serait d'avoir ces faisceaux:
main
qui comprendb
x
qui inclut seulementa
(commeb
est déjà inclus dans le premier paquet et je ne veux pas que les utilisateurs téléchargent plus d'une fois un morceau de code).
Voilà ma configuration optimiseur:
({
appDir: 'www',
baseUrl: 'js/',
mainConfigFile: 'www/js/require.config.js',
dir: 'www-release',
modules: [
{
name: 'main',
exclude: ['x']
},
{
name: 'x',
exclude: ['main']
}
],
optimize: 'none',
removeCombined: true
})
Je ne veux exclure de main
l'arbre entier de dépendance de x
, mais encore des modules inclus que j'exige pas explicitement, comme a
.
Je sais que:
include
- comprennent explicitement module qui ne sont pas tenus directement et dépendances de l'arbre entier.exclude
- l'exclusion d'un module exclut en fait toute son arborescence de dépendance, en surchargeantinclude
en cas de conflit.excludeShallow
- inclut l'arborescence de dépendances du module, et non, y compris le module lui-même.
Ayant cela, je ne vois pas un moyen clair d'accomplir ce que je veux, pouvez-vous aider?
Est-ce quelque chose comme ça valide? '{ nom: 'x', exclure: ['main', 'b'] }'? Avez-vous envisagé d'utiliser webpack en passant? –
Cela ne fonctionnera pas, b sera manquant dans les deux paquets de cette façon. En ce qui concerne webpack - je l'ai mais pour l'instant je suis coincé avec requirejs, je ne sais pas quel est le coût de passer à webpack. J'ai le sentiment que ça ne va pas être rapide. – johni