Un webpack en boucle regroupe un projet à différents endroits en même temps
let num
(new Array(num)),map((v, k) = {
let start = +new Date()
webpack(webpackConfig, () => {
console.log(`time:${+new Date() - start} ms)
})
})
time:5232ms
time:9212ms
time:9332ms
time:40212ms
time:40342ms
...
time: 4xxxxms
Cela ne semble pas être parallèle dans le vrai sens du terme. Il faudra attendre que tous les webpacks soient entièrement exécutés avant de revenir ensemble
.
L'effet attendu est celui qui le construit en premier et le rend en premier, pas ensemble
Est-ce lié au thread unique de nodejs ?
Plus tard, j'ai utilisé la bibliothèque parallèle-webpack, modifié le code source et imprimé l'heure de retour de chaque promesse. Les résultats étaient similaires, aidez
.
L'exécution de Nodejs est monothread, mais vos résultats sont liés à la façon dont vous l'écrivez.
Vous pouvez essayer les deux solutions suivantes, dont la seconde peut atteindre un véritable parallélisme
1 : Écrivez chaque méthode de construction de tâche Webpack dans la boucle de manière asynchrone, comme setTimeOut.
2 : Démarrez plusieurs processus de nœuds et exécutez la construction du webpack sur chaque processus