291 votes

Bower init - différence entre amd, es6, globals et nœud

Je crée mon premier composant Bower. Après avoir exécuté `` le script me demande « quels types de modules ce paquet expose-t-elle ? » avec les options suivantes :

  • AMD
  • ES6
  • Globals
  • nœud

Quelle est la différence entre ces options ?

121voto

Mangled Deutz Points 3267

Si vous ne savez pas, c'est tout à fait probable globals est la bonne réponse pour vous.

De toute façon, vous avez besoin de comprendre:

[Mise à JOUR]

Cette fonctionnalité a été introduite très récemment dans la charmille et n'est pas documentée à tous encore (à ma connaissance). Il décrit essentiellement le "moduleType", ce qui atteste de ce que la technologie de module le paquet est destiné à être consommé (voir ci-dessus). Pour l'instant, elle n'a aucun effet en dehors de réglage de la moduleType propriété dans la charmille.fichier json de l'emballage. Voir https://github.com/bower/bower/pull/934 pour l'original de la pull-request.

[Mise à JOUR #2]

Quelques points supplémentaires, pour répondre à des commentaires:

  • droit maintenant, autant que je sache, il n'y a pas de validation sur l' moduleType de la propriété - ce qui signifie que les gens sont techniquement autorisé à utiliser quelle que soit la valeur qu'ils veulent, y compris angularjs si elles se sentent enclins à le faire
  • la charmille comité semble pas vif vers l'inclusion d'autres "non-interopérables/propriétaire" moduleTypes (pensez compositeur, angulaire, etc) - qui est facilement compréhensible, mais encore une fois, rien de vraiment empêche les gens d'utiliser le moduleType valeur qu'ils veulent
  • une exception à la précédente est (un peu) l'inclusion récente de l' yui moduleType, donc, il y a des "exceptions" à être fait, en supposant qu'ils sont partie d'un plan concerté

Ce que je ferais si j'étais l'auteur d'un package pour un non-répertoriés gestionnaire de paquets et de les publier sur bower?

Je voudrais auteur d'un es6 module, et de l'utilisation / patch es6-transpiler de sortie le format de paquets dont j'ai besoin. Alors je voudrais soit/et:

  • pétition de la charmille gars pour inclure mon colis de la technologie comme un choix (basé sur le fait que c'est pris en charge par l'es6-transpiler comme une cible)
  • publier mon forfait incluant à la fois l'es6 module version et la transpiled XXX version de celui-ci, et utilisez es6 comme moduleType

Avertissement: je n'ai pas l'expérience d'une vie de création angularjs modules.

27voto

Gianluca Casati Points 31

Je suis à l'aide d' bower init pour la première fois de trop.

Les options doivent consulter les différentes façons de modulariser le code JavaScript:

  • amd: à l'aide d'AMD define, comme requirejs.
  • nœud: à l'aide de Node.js require.
  • globals: à l'aide de JavaScript motif de module pour exposer une variable globale (comme la fenêtre.JQuery).
  • es6: l'aide à venir EcmaScript6 module de fonction.

Dans mon cas, j'ai écrit un nœud module dflow mais je suis en utilisant browserify pour créer un dist/dflow.js fichier des exportations mondiale dflow var: j'ai donc sélectionné globals.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X