380 votes

Quelle est la convention d'appellation des noms de fichiers javascript ?

Les fichiers doivent-ils être nommés something-with-hyphens.js, camelCased.js, ou autre chose ?

Je n'ai pas trouvé la réponse à cette question. aquí .

6 votes

Une bonne convention de dénomination consiste à nommer les noms de fichiers comme vous verriez cette entité dans le code. Le site MyPlugin la classe irait dans MyPlugin.js . Le site MenuItem Le composant React sera placé dans MenuItem.js . D'autres développeurs exigeront/importeront "votre-module-cool" et utiliseront plusieurs symboles de ce dernier. cool-module.js . -

3 votes

Ce poste n'est pas basé sur des options. En fait, il est important. Ici vous avez un guide fait par Google - google.github.io/styleguide/jsguide.html#file-name . (Guide de style JavaScript de Google)

1 votes

Une convention existe ou n'existe pas. La question n'est pas de demander " quelle est votre dénomination préférée ? ". Je vote pour la réouverture.

240voto

Bryan Menard Points 5664

Une convention de dénomination possible est d'utiliser quelque chose de similaire au schéma de dénomination utilisé par jQuery. Il n'est pas universellement adopté, mais il est assez courant.

product-name.plugin-ver.sion.filetype.js

où le product-name + plugin peut également représenter une espace de noms et un module . Le site version y filetype sont généralement facultatifs.

filetype peut être quelque chose de relatif à la façon dont le contenu du fichier est. On le voit souvent :

  • min pour les fichiers minifiés
  • custom pour les fichiers construits ou modifiés sur mesure

Exemples :

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js

38 votes

Je suis d'accord sur ce que vous avez dit. Mais il y a une chose avec laquelle j'ai du mal : que faire si le 'plugin' contient deux mots ? Les séparer par des points ? jquery.myPlugin-1.0.0.js ou jquery.my.plugin-1.0.0.js ou jquery.my_plugin-1.0.0.js ou jquery.myplugin-1.0.0.js ou peut-être même jquery.my-plugin-1.0.0.js ? Vous pouvez peut-être compléter vos exemples avec cela, merci !

4 votes

Qu'en est-il AMD modules ? Si vous utilisez la version dans les noms de fichiers, vous devez modifier un grand nombre de fichiers si le numéro de version change.

3 votes

@junior, c'est un vieux post, mais un rapide recherche bower révèle que les plugins jquery ne suivent pas de convention particulière. Il semble que (1) le rapprochement des mots, (2) l'utilisation des majuscules et (3) l'utilisation des minuscules sont tous utilisés avec une fréquence à peu près équivalente.

183voto

jfriend00 Points 152127

Je ne connais pas de convention particulière pour les fichiers javascript car ils ne sont pas vraiment uniques sur le web par rapport aux fichiers css ou html ou tout autre type de fichier de ce genre. Il y a certaines choses "sûres" que vous pouvez faire pour réduire le risque de rencontrer accidentellement un problème de multiplateforme :

  1. Utilisez tous les noms de fichiers en minuscules. Certains systèmes d'exploitation ne sont pas sensibles à la casse des noms de fichiers et l'utilisation de toutes les minuscules évite d'utiliser par inadvertance deux fichiers qui ne diffèrent que par la casse, ce qui pourrait ne pas fonctionner sur certains systèmes d'exploitation.
  2. N'utilisez pas d'espaces dans le nom du fichier. Bien que cela puisse techniquement fonctionner, il existe de nombreuses raisons pour lesquelles les espaces dans les noms de fichiers peuvent entraîner des problèmes.
  3. Un trait d'union est acceptable comme séparateur de mots. Si vous souhaitez utiliser une sorte de séparateur pour les mots multiples au lieu d'un espace ou d'une majuscule comme dans l'exemple suivant various-scripts.js le trait d'union est un séparateur sûr, utile et couramment utilisé.
  4. Pensez à utiliser des numéros de version dans vos noms de fichiers. Lorsque vous voulez mettre à jour vos scripts, prévoyez les effets de la mise en cache du navigateur ou du CDN. Le moyen le plus simple d'utiliser la mise en cache à long terme (pour la vitesse et l'efficacité), mais des mises à niveau immédiates et sûres lorsque vous mettez à jour un fichier JS est d'inclure un numéro de version dans le nom de fichier ou le chemin d'accès déployé (comme jQuery le fait avec jquery-1.6.2.js) et ensuite vous bump/changez ce numéro de version chaque fois que vous mettez à jour/modifiez le fichier. Cela garantira qu'aucune page demandant la version la plus récente ne recevra jamais l'ancienne version à partir d'un cache.

80voto

zzzzBov Points 62084

Il n'y a pas d'officiel, universel pour nommer les fichiers JavaScript.

Il existe plusieurs possibilités :

  • scriptName.js
  • script-name.js
  • script_name.js

sont toutes des conventions de dénomination valables, mais I préférez la convention de nommage suggérée par jQuery (pour les plugins jQuery, bien que cela fonctionne pour tout JS)

  • jquery.pluginname.js

La beauté de cette convention d'appellation est qu'elle explicitement décrit la pollution de l'espace de nom global qui est ajoutée.

  • foo.js ajoute window.foo
  • foo.bar.js ajoute window.foo.bar

Parce que j'ai oublié de mentionner les versions : elles doivent être placées après le nom complet, de préférence séparées par un trait d'union, avec des points entre les versions majeures et mineures :

  • foo-1.2.1.js
  • foo-1.2.2.js
  • ...
  • foo-2.1.24.js

17 votes

+1 pour The beauty to this naming convention is that it explicitly describes the global namespace pollution being added. Je n'ai jamais remarqué ça.

2 votes

Ma seule question est de savoir ce qu'il faut faire si vous avez un fichier qui crée Foo o myFoo vous nommeriez simplement le fichier Foo.js o myFoo.js respectivement ?

25voto

Pete Wilson Points 5377

La question dans le lien que vous avez donné parle du nommage des variables JavaScript, pas du nommage des fichiers, donc oubliez cela pour le contexte dans lequel vous posez votre question.

Quant au nom des fichiers, c'est une pure question de préférence et de goût. Je préfère nommer les fichiers avec des traits d'union parce que je n'ai pas besoin d'appuyer sur la touche Maj, comme c'est le cas avec les noms de fichiers en majuscules, et parce que je n'ai pas à me soucier des différences entre les noms de fichiers Windows et Linux (les noms de fichiers Windows ne sont pas sensibles à la casse, du moins jusqu'à XP).

La réponse, comme tant d'autres, est donc "ça dépend" ou "ça dépend de vous".

La seule règle à suivre est d'être cohérent dans la convention que vous choisissez.

12 votes

+1 pour le raisonnement sur le trait d'union ou la camelCase.

9voto

Tom Hall Points 2090

En général, je préfère les traits d'union avec les minuscules, mais une chose qui n'a pas encore été mentionnée est que, parfois, il est agréable que le nom du fichier corresponde exactement au nom d'un module unique ou d'une fonction instanciable qu'il contient.

Par exemple, j'ai un module révélateur déclaré avec var knockoutUtilityModule = function() {...} dans son propre fichier nommé knockoutUtilityModule.js, bien qu'objectivement je préfère knockout-utility-module.js.

De même, puisque j'utilise un mécanisme de regroupement pour combiner les scripts, j'ai pris l'habitude de définir les fonctions instanciables (modèles de vue, etc.) dans leur propre fichier, à la manière de C#, pour faciliter la maintenance. Par exemple, ProductDescriptorViewModel vit seul dans ProductDescriptorViewModel.js (j'utilise des majuscules pour les fonctions instanciables).

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