Ils semblent être de résoudre le même problème mais pour les différents environnements/mondes. NPM pour nodejs et volo, bower pour le navigateur.
La vérité est que vous pouvez utiliser NPM également de gérer des fichiers javascript et css pour le navigateur. Il n'y a rien de vous empêche de le faire. En ce sens, à l'aide de la NGP se sent plus naturel pour moi que d'avoir à gérer deux outils différents pour le même but.
Il semble que bower ont plus de paquets disponibles, au moins pour les plus populaires. Mais bientôt, jQuery seront également disponibles dans MNP directement et probablement tous les autres bibliothèques suivent la même tendance.
À mon avis, car il y a des outils comme browserify et webmake là-bas, qui aident à utiliser un nœud de modules dans le navigateur, il n'est plus un besoin réel pour la charmille ou volo, à moins qu'ils offrent quelque chose d'autre pour vous (un module particulier qui n'existe que dans leurs registres).
Les deux Volo et Bower sont bon aussi, mais de mon point de vue, si vous êtes déjà à l'aide de la NGP, il peut être préférable de s'en tenir à elle.
Veuillez noter que vous pouvez utiliser NPM pour la gestion de votre client dépendances, même sans l'aide de browserify ou webmake. Dans la plupart des projets que j'ai en cours de travail, après que le mnp modules sont installés, je lance un script pour les déployer à l'emplacement où mon client app utilise. Parfois je utiliser grunt pour concaténer ce fichier avec d'autres fichiers js et parfois j'ai l'référence directement à partir des fichiers de modèle de mes applications web. En tout cas, c'est une question de préférence personnelle. D'autres pourraient trouver Bower ou Volo plus facile à utiliser car ils correspondent plus naturel dans leurs flux de travail.