Gestionnaire de paquets: Bower vs jspm

En quoi Bower est-il différent de jspm ? Bower peut-il fournir des fonctionnalités jspm sur le chargeur de modules universel SystemJS ?

    Eh bien, JSPM est un projet beaucoup plus vaste et ambitieux que Bower. Bower n’a qu’un seul but: télécharger les fichiers source dont vous avez besoin depuis le Web sur votre disque dur. Pour vous, consommateur, bower ne fait rien d’autre. Si vous souhaitez exécuter des fichiers de script depuis bower, vous devez créer vos balises de script pour chacun d’entre eux.

    Alors que jspm n’est pas seulement un téléchargeur de module. Il télécharge par défaut systemjs que vous avez mentionné. SystemJS est implémenté aussi étroitement que possible sur https://whatwg.github.io/loader/ . En fait, l’auteur de JSPM participe activement au processus de spécification. Avec systemjs, vous pouvez aujourd’hui charger ES6 (en les transposant dans le navigateur), CommonJS ou AMD dans le navigateur sans les construire. Non seulement les modules ES6, mais toutes les autres fonctionnalités ES6 sockets en charge par traceur / babeljs / typescript. Selon le compilateur que vous choisissez lors de l’exécution de jspm init . SystemJS fonctionne en 1: 1 dans node.js ainsi que dans le navigateur, ce qui facilite les tests unitaires de votre application.

    En outre, il peut créer le bundle pour vous ( jspm build ) lorsque vous devez aller en production. Il est donc évident que jspm (+ systemjs) est un outil plus puissant. Donc, en règle générale:

    • besoin de rapidement obtenir jquery et l’inclure dans votre fichier HTML basé sur des modèles? Aller avec une balise de script régulière. Bower a été déconseillé.
    • besoin de construire une grande application JS? Aller avec Webpack. JSPM n’a pas réussi à atteindre la masse critique et tout le monde fait le webpack maintenant.

    Pour append à la réponse de Capaj:

    Si vous avez un petit projet, allez avec jspm quand même! C’est le futur! (qui sait, les choses changent, mais c’est un bon pari).

    Petite utilisation du projet:

     $ jspm install jquery 

    alors dans votre HTML:

         

    puis dans main.js:

     import $ from 'jquery'; // ES6-style import // do whatever with jQuery here. 

    Vous pouvez utiliser les formats de module CommonJS, AMD ou ES 6. JSPM les détecte automatiquement dans vos fichiers (vous ne pouvez cependant pas les combiner dans le même fichier).

     var $ = require('jquery'); // CommonJS-style import // do whatever with jQuery here. 
     define(['jquery'], function($) { // AMD-style import // do whatever with jQuery here. })