close

CommonJS

Aller à la navigation Aller à la recherche

CommonJS était un projet dont l'objectif était d'établir des conventions sur l'écosystème de modules pour JavaScript en dehors du navigateur Web . La principale raison de sa création était le grand manque d'unités modulaires de scripts JavaScript d'une manière communément acceptée, qui pourraient être réutilisées dans des environnements autres que ceux fournis par un navigateur Web conventionnel, par exemple, un serveur Web ou des applications de bureau natives qui s'exécutent Scripts JavaScript.

CommonJS maintient les spécifications (y compris les brouillons) et une liste des implémentations sur un site MediaWiki . Toutes les activités d'édition ont cessé depuis novembre 2014, marquant la fin effective de sa vie. [ 1 ]

Historique

Le projet a été lancé par l'ingénieur Mozilla Kevin Dangoor en janvier 2009 et s'appelait initialement ServerJS. [ 2 ]  

Ce que je décris ici n'est pas un problème technique. Il s'agit de gens qui se réunissent et prennent la décision d'intervenir et de commencer à construire ensemble quelque chose de plus grand et de plus cool.
kevin dangoor

En août 2009, le projet a été renommé CommonJS pour montrer la plus grande applicabilité des API . [ 3 ]​ Les spécifications sont créées et approuvées dans le cadre d'un processus ouvert. Une spécification n'est considérée comme définitive que lorsqu'elle a été complétée par plusieurs implémentations [ 4 ] . CommonJS n'est pas affilié au groupe Ecma International TC39 qui travaille sur ECMAScript , mais certains membres du TC39 sont impliqués dans le projet. [ 5 ]

En mai 2013, Isaac Z. Schlueter, l'auteur de npm , le gestionnaire de packages pour Node.js , a déclaré que CommonJS est rendu obsolète par Node.js, désormais dominant, et est évité par les développeurs principaux de Node.js. [ 6 ]

Spécifications

La liste des spécifications comprend : [ 7 ]

  • Modules/1.0 (Remplacé par Modules/1.1)
  • Modules/1.1
  • Modules/1.1.1
  • Forfaits/1.0
  • Système/1.0

Propositions

Les propositions couvrent bien plus que des modules. Ils visent à définir un ensemble d'API utiles pour les implémentations JavaScript non Web, avec des noms de packages standardisés pour assurer l'interopérabilité au sein de l'écosystème. Cet objectif chevauche parfois celui de TC39, et des parties comme Promises sont devenues ECMAScript lui-même.

La partie après la barre oblique est la version. Lorsqu'une proposition est contestée, chaque proposition individuelle (y compris les examens séquentiels par le même auteur) se voit attribuer une nouvelle lettre. Lorsque l'adresse principale est connue, des versions numériques commencent à lui être attribuées.

  • Binaire/B,F
  • Console (portée depuis le Web)
  • Encodages/A,C
  • Encodages/A
  • Client HTTP/B
  • E/S
  • Système de fichiers/A,A/0
  • Modules/Async/A
  • Modules/Définition asynchrone
  • Modules/LoaderPlug-in
  • Modules/Ressources
  • Modules/SimpleAsynchrone
  • Modules/Transports/B,C,D,E
  • Modules/Enveloppes
  • Modules/Wrappings-Dépendances-Explicites
  • forfaits/1.1
  • Packages/Définition asynchrone
  • Packages/Mappages/A,B,C,D
  • Promesses/B,D
  • Tests unitaires/B,1.0,1.0.1

Implémentations

  • Akshell [ 8 ]
  • Nœud commun [ 9 ]
  • CommonJS Compiler - un outil de ligne de commande qui rend les modules Common JS adaptés à une utilisation dans le navigateur [ 10 ]
  • CommonJS pour PHP - une implémentation légère de CommonJS pour PHP 5.3+ [ 11 ]
  • CouchDB [ 12 ]
  • Flusspferd [ 13 ]
  • GPSEE [ 14 ]
  • jet pack
  • Plateforme intelligente Joyent [ 15 ]
  • JSBuild [ 16 ]
  • MongoDB [ 17 ]
  • Narval (plateforme JavaScript) [ 18 ]
  • Node.js (partiel ; synchrone) [ 19 ]
  • Persévérer [ 20 ]
  • Chargeur JavaScript PIN [ 21 ]
  • Ringo JS [ 22 ]
  • SoieJS [ 23 ]
  • Noyau de germe [ 24 ]
  • ThéJS [ 25 ]
  • Wakanda [ 26 ]
  • XULJet [ 27 ]

Voir aussi

  • Comparaison des solutions JavaScript côté serveur
  • Document Object Model (DOM), une interface de programmation d'application (API) côté client du navigateur Web couramment disponible en JavaScript
  • JSGI

Références

  1. ^ "Modifications récentes" . Wiki des spécifications CommonJS . 
  2. Ce dont JavaScript côté serveur a besoin - Blue Sky On Mars
  3. CommonJS : bibliothèque standard JavaScript
  4. ↑Processus de proposition - CommonJS Spec Wiki
  5. CommonJS : la première année - Ciel bleu sur Mars
  6. ^ Schlueter, Isaac Z. (25 mars 2013). "Oubliez CommonJS. C'est mort. **Nous sommes JavaScript côté serveur.**» . GitHub . 
  7. "Bibliothèque standard JavaScript" . CommonJS. Archivé de l'original le 28 mai 2014 . Consulté le 28 mai 2014 . 
  8. Développement et hébergement JavaScript côté serveur - Akshell
  9. olegp/common-node @ GitHub
  10. - GitHub
  11. DrBenton/CommonJSForPHP - GitHub
  12. Implémentations/CouchDB - CommonJS Spec Wiki
  13. Flusspferd - Plateforme CommonJS | Liaisons Javascript pour C
  14. Implémentations/GPSEE - CommonJS Spec Wiki
  15. Implémentations/Smart - CommonJS Spec Wiki
  16. ^ "Page d'accueil - JSBuild" . Archivé de l'original le 4 janvier 2011 . Consulté le 23 mai 2020 . 
  17. MongoDB
  18. Implémentations/Narwhal - CommonJS Spec Wiki
  19. Implémentations/node.js - CommonJS Spec Wiki
  20. Implémentations/Persevere - CommonJS Spec Wiki
  21. pinf/loader-js - GitHub
  22. Implémentations/RingoJS - CommonJS Spec Wiki
  23. "Site WWW SilkJS" . Archivé de l'original le 12 septembre 2017 . Consulté le 23 mai 2020 . 
  24. Implémentations/SproutCore - CommonJS Spec Wiki
  25. Implémentations/TeaJS - CommonJS Spec Wiki
  26. Wakanda
  27. xuljet - XUL JavaScript Enhanced Toolkit - Google Project Hosting

Liens externes