javascript - problème d'empaquetage parallèle (simultané) du webpack
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:43:10
0
1
771

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)
  })
})
  • num = 1

 time:5232ms
  • num = 2

time:9212ms
time:9332ms
  • ...

  • num = 30

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

.
扔个三星炸死你
扔个三星炸死你

répondre à tous(1)
曾经蜡笔没有小新

L'exécution de Nodejs est monothread, mais vos résultats sont liés à la façon dont vous l'écrivez.

L'effet attendu est de savoir qui le construit en premier et le restitue en premier, pas ensemble

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal