Was ist die Namenskonvention für Javascript-Dateinamen? [geschlossen]

283

Sollten Dateien den Namen "Something-with-Hyphens.js", "camelCased.js" oder etwas anderes haben?

Ich habe hier keine Antwort auf diese Frage gefunden .

ripper234
quelle
2
Eine gute Namenskonvention besteht darin, Dateinamen so zu benennen, wie Sie diese Entität im Code sehen würden. Die MyPluginKlasse würde hineingehen MyPlugin.js. Die MenuItemReact-Komponente wird aktiviert MenuItem.js. Andere Entwickler benötigen / importieren 'your-cool-module' und verwenden mehrere Symbole daraus cool-module.js. Nennen Sie es also . -
Dan Dascalescu
1
Dieser Beitrag ist nicht optionsbasiert. In der Tat ist es wichtig. Hier haben Sie eine Anleitung von Google - google.github.io/styleguide/jsguide.html#file-name . (Google JavaScript Style Guide)
zwitterion

Antworten:

184

Eine mögliche Namenskonvention besteht darin, etwas zu verwenden, das dem von jQuery verwendeten Namensschema ähnelt. Es ist nicht allgemein anerkannt, aber es ist ziemlich häufig.

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

Dabei kann das product-name+ plugin-Paar auch einen Namespace und ein Modul darstellen . Die versionund filetypesind in der Regel optional.

filetypekann relativ zum Inhalt der Datei sein. Oft gesehen werden:

  • min für minimierte Dateien
  • custom für benutzerdefinierte oder geänderte Dateien

Beispiele:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js
Bryan Menard
quelle
31
Ich stimme dem zu, was du gesagt hast. Aber eines habe ich derzeit zu kämpfen: Was ist, wenn das Plugin zwei Wörter enthält? Sie durch Punkte trennen? jquery.myPlugin-1.0.0.js oder jquery.my.plugin-1.0.0.js oder jquery.my_plugin-1.0.0.js oder jquery.myplugin-1.0.0.js oder vielleicht sogar jquery.my-plugin- 1.0.0.js? Vielleicht können Sie Ihre Beispiele damit vervollständigen, danke!
28.
4
Was ist mit AMD- Modulen? Wenn Sie die Version in Dateinamen verwenden, müssen Sie viele Dateien ändern, wenn sich die Versionsnummer ändert.
Knut
3
@junior, dies ist ein alter Beitrag, aber eine schnelle Suche zeigt, dass jquery-Plugins keiner bestimmten Konvention folgen. Es scheint, dass (1) das Zusammenschieben der Wörter, (2) das Verwenden des Buchstabens und (3) das Verwenden von camelCase alle mit ungefähr gleicher Häufigkeit verwendet werden.
Bholben
Nicht zu vergessen, dass einige Versions- und Dateisysteme Probleme haben, den Unterschied zwischen einem Wort in Kleinbuchstaben und demselben Wort in Groß- oder CamelCase zu erkennen (z. B. "ThisWord" ist in einigen Umgebungen dasselbe wie "thisword"). Beachten Sie dies bei der Verwendung der camelCase-Konvention.
Amypellegrini
@knut Sie sollten nicht über Versionsnamen laden, sondern den Modulnamen einer bestimmten Versionsdatei zuordnen.
Bangalore
132

Mir ist keine bestimmte Konvention für Javascript-Dateien bekannt, da sie im Web nicht wirklich einzigartig sind, im Vergleich zu CSS-Dateien oder HTML-Dateien oder anderen Dateitypen wie diesen. Es gibt einige "sichere" Dinge, die Sie tun können, um die Wahrscheinlichkeit zu verringern, dass Sie versehentlich auf ein plattformübergreifendes Problem stoßen:

  1. Verwenden Sie alle Dateinamen in Kleinbuchstaben. Es gibt einige Betriebssysteme, bei denen bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterschieden wird. Durch die Verwendung von Kleinbuchstaben wird verhindert, dass versehentlich zwei Dateien verwendet werden, die sich nur unterscheiden, wenn sie unter bestimmten Betriebssystemen möglicherweise nicht funktionieren.
  2. Verwenden Sie keine Leerzeichen im Dateinamen. Obwohl dies technisch funktioniert, gibt es viele Gründe, warum Leerzeichen in Dateinamen zu Problemen führen können.
  3. Ein Bindestrich ist für ein Worttrennzeichen in Ordnung. Wenn Sie eine Art Trennzeichen für mehrere Wörter anstelle eines Leerzeichens oder eines Kamelkastens wie in verwenden möchten various-scripts.js, ist ein Bindestrich ein sicheres und nützliches und häufig verwendetes Trennzeichen.
  4. Denken Sie daran, Versionsnummern in Ihren Dateinamen zu verwenden. Wenn Sie Ihre Skripte aktualisieren möchten, planen Sie die Auswirkungen des Browser- oder CDN-Caching ein. Die einfachste Möglichkeit, Langzeit-Caching (aus Gründen der Geschwindigkeit und Effizienz), aber sofortige und sichere Upgrades beim Upgrade einer JS-Datei zu verwenden, besteht darin, eine Versionsnummer in den bereitgestellten Dateinamen oder Pfad aufzunehmen (wie dies bei jQuery mit jquery-1.6.2.js der Fall ist ) und dann stoßen / ändern Sie diese Versionsnummer, wenn Sie die Datei aktualisieren / ändern. Dies garantiert, dass keine Seite, die die neuere Version anfordert, jemals die ältere Version aus einem Cache bereitgestellt wird.
jfriend00
quelle
56

Es gibt keine offizielle, universelle Konvention zum Benennen von JavaScript-Dateien.

Es gibt verschiedene Möglichkeiten:

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

sind alle gültigen Namenskonventionen, ich bevorzuge jedoch die von jQuery vorgeschlagene Namenskonvention (für jQuery-Plugins, obwohl sie für jedes JS funktioniert)

  • jquery.pluginname.js

Das Schöne an dieser Namenskonvention ist, dass sie explizit die globale Verschmutzung des Namespace beschreibt, die hinzugefügt wird.

  • foo.js fügt hinzu window.foo
  • foo.bar.js fügt hinzu window.foo.bar

Weil ich die Versionierung weggelassen habe: Sie sollte nach dem vollständigen Namen stehen, vorzugsweise durch einen Bindestrich getrennt, mit Punkten zwischen Haupt- und Nebenversion:

  • foo-1.2.1.js
  • foo-1.2.2.js
  • ...
  • foo-2.1.24.js
zzzzBov
quelle
10
+1 für The beauty to this naming convention is that it explicitly describes the global namespace pollution being added., habe das nie bemerkt
Adrien Be
2
Meine einzige Frage ist, was zu tun ist, wenn Sie eine Datei haben, die erstellt, Foooder myFoowürden Sie die Datei einfach benennen Foo.jsoder myFoo.js?
Semikolon
13

Die Frage in dem Link, den Sie gegeben haben, befasst sich mit der Benennung von JavaScript-Variablen und nicht mit der Benennung von Dateien. Vergessen Sie dies für den Kontext, in dem Sie Ihre Frage stellen.

Die Benennung von Dateien ist lediglich eine Frage der Präferenz und des Geschmacks. Ich bevorzuge es, Dateien mit Bindestrichen zu benennen, da ich dann nicht nach der Umschalttaste greifen muss, wie dies beim Umgang mit camelCase-Dateinamen der Fall ist. und weil ich mich nicht um Unterschiede zwischen Windows- und Linux-Dateinamen kümmern muss (bei Windows-Dateinamen wird die Groß- und Kleinschreibung nicht berücksichtigt, zumindest nicht unter XP).

Wie so viele lautet die Antwort "es kommt darauf an" oder "es liegt an Ihnen".

Die einzige Regel, die Sie befolgen sollten, ist, in der von Ihnen gewählten Konvention konsistent zu sein.

Pete Wilson
quelle
6
+1 für die Argumentation Bindestrich vs. camelCase.
Cellepo
6

Ich bevorzuge im Allgemeinen Bindestriche mit Kleinbuchstaben, aber eine Sache, die noch nicht erwähnt wurde, ist, dass es manchmal schön ist, wenn der Dateiname genau mit dem Namen eines einzelnen Moduls oder einer darin enthaltenen instanziierbaren Funktion übereinstimmt.

Zum Beispiel habe ich ein aufschlussreiches Modul mit var knockoutUtilityModule = function() {...}einer eigenen Datei namens knockoutUtilityModule.js deklariert , obwohl ich objektiv knockout-Utility-module.js bevorzuge.

Da ich zum Kombinieren von Skripten einen Bündelungsmechanismus verwende, habe ich aus Gründen der Wartbarkeit instanziierbare Funktionen (Vorlagenansichtsmodelle usw.) in einer eigenen Datei im C # -Stil definiert. Zum Beispiel lebt ProductDescriptorViewModel alleine in ProductDescriptorViewModel.js (ich verwende Großbuchstaben für instanziierbare Funktionen).

Tom W Hall
quelle