web-dev-qa-db-ja.com

JavaScriptのファイル名の命名規則は何ですか?

ファイルの名前はsomething-with-hyphens.js、camelCased.js、またはそれ以外にする必要がありますか。

この質問に対する答えが見つかりませんでした ここ

246
ripper234

考えられる命名規則の1つは、jQueryが使用する命名体系に似たものを使用することです。それは普遍的に採用されていませんが、それはかなり一般的です。

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

product-name + pluginの組は、 名前空間およびモジュール を表すこともできます。 versionおよびfiletypeは通常、オプションです。

filetypeは、ファイルの内容がどのようになっているかに関連したものになります。よく見られます:

  • 縮小ファイルのmin
  • カスタムビルドまたは変更されたファイルのcustom

例:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js
155
Bryan Menard

JavaScriptファイルは、CSSファイルやHTMLファイル、その他の種類のファイルと比べて、Web上では固有のものではないため、JavaScriptファイルの特別な規約はわかりません。あなたが誤ってクロスプラットフォームの問題に遭遇する可能性を少なくするためにあなたができることができるいくつかの "安全な"ことがあります:

  1. すべて小文字のファイル名を使用ファイル名の大文字と小文字を区別しないオペレーティングシステムもあり、すべて小文字を使用すると、一部のオペレーティングシステムでは機能しない場合にのみ異なる2つのファイルを誤って使用しなくなります。
  2. ファイル名にスペースを使用しないでくださいこれは技術的には機能するように作られていますが、ファイル名のスペースが問題を引き起こす可能性がある理由はたくさんあります。
  3. Wordの区切り文字にはハイフンは問題ありません。various-scripts.jsのようにスペースやキャメルケースの代わりにある種の区切り文字を複数の単語に使用したい場合は、ハイフンが安全で便利で一般的に使用される区切り文字です。
  4. ファイル名にバージョン番号を使用することを考えてください。スクリプトをアップグレードしたいときは、ブラウザまたはCDNキャッシュの効果を考慮してください。 (速度と効率のために)長期キャッシュを使用する最も簡単な方法ですが、JSファイルをアップグレードするときに即時で安全なアップグレードを行うには(jQueryがjquery-1.6.2.jsで行うように)デプロイされたファイル名またはパスにバージョン番号を含めます。ファイルをアップグレードまたは変更するたびに、そのバージョン番号をぶつけたり変更したりします。これにより、新しいバージョンを要求するページがキャッシュから古いバージョンに配信されることは決してありません。
108
jfriend00

公式な汎用、JavaScriptファイルの命名規則はありません。

いくつかのさまざまなオプションがあります。

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

すべての有効な命名規則ですが、IはjQueryが提案している命名規則を好みます(jQueryプラグインの場合、ただしどのJSでも機能します)。

  • jquery.pluginname.js

この命名規則の利点は、それが明示的に追加されているグローバル名前空間汚染を説明していることです。

  • foo.jswindow.fooを追加します
  • foo.bar.jswindow.foo.barを追加します

私はバージョニングを省略したので、フルネームの後に、できればハイフンで区切って、メジャーバージョンとマイナーバージョンの間にピリオドを入れてください。

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

リンクの中の質問は、ファイルの命名ではなく、JavaScript変数の命名について説明しているので、質問をする文脈では、そのことを忘れてください。

ファイル命名に関しては、純粋に好みと好みの問題です。キャメルケースのファイル名を扱うときのようにシフトキーに手を伸ばす必要がないので、ハイフンでファイルに名前を付けるのが好きです。 WindowsとLinuxのファイル名の違いについて心配する必要はありません(Windowsのファイル名は、少なくともXPでは大文字と小文字が区別されません)。

それで、答えは、他の多くの人と同様に、「それが依存する」か「それはあなた次第です」です。

従うべき規則の1つは、選択した規則に一貫していることです。

12
Pete Wilson

私は一般的に小文字のハイフンを好むが、まだ言及されていないことの一つは、ファイル名がその中に含まれる単一のモジュールまたはインスタンス化可能な関数の名前と正確に一致するのがいいことである。

例えば、私はvar knockoutUtilityModule = function() {...}で宣言されたモジュールをknockoutUtilityModule.jsという名前の独自のファイル内に宣言していますが、客観的にはknockout-utility-module.jsを好みます。

同様に、私はスクリプトを結合するためにバンドル化メカニズムを使っているので、保守性のためにインスタンス化可能な関数(テンプレートビューモデルなど)をそれぞれ独自のファイル、C#スタイルで定義することにしました。たとえば、ProductDescriptorViewModelは、ProductDescriptorViewModel.jsの内部で独自に動作します(インスタンス化可能な関数には大文字を使用します)。

6
Tom Hall