-
Notifications
You must be signed in to change notification settings - Fork 8
ModuleName
uupaa edited this page Oct 12, 2014
·
19 revisions
このエントリでは WebModule の命名制約について説明します。
WebModule には命名に制約があります。この制約は、WebModule が GitHub と npm という2つの異なるポリシーを持った環境にモジュールを登録する都合から発生しています。
- 使用可能な文字種
- GitHub リポジトリ名に利用できる文字種は、A-Z, a-z, 0-9, ドット(.), アンダーバー(_), ハイフン(-) です
- npm パッケージ名に利用できる文字種は a-z, 0-9, ドット(.), アンダーバー(_) です
- スコープ
- GitHub はユーザごとのスコープを持ちます。ユーザA と ユーザB が個々に
MyWebModule.jsを作成することが可能です - npm はグローバルなスコープを持ちます。ユーザA が
mywebmodule.jsを作成すると、ユーザB はもうその名前では登録できません
- GitHub はユーザごとのスコープを持ちます。ユーザA と ユーザB が個々に
これらを踏まえた、WebModule の命名規則は以下のようになっています。
WebModule のモジュール名は、MyExample.js のように、プリフィクス("My") + 機能名("Example") + 拡張子(".js") で構成されます。
- プリフィクスには、 "My" などの適当な短い文字列を付けてください
- 省略が可能ですが、省略した場合は、WebModule 名前空間における衝突が発生する可能性があります
- 機能名には、モジュールの機能性を表す文字列を付けてください
- PacalCase を使ってください
- 拡張子には、開発環境を示す拡張子を指定します
- JavaScript なら ".js" にします
- npm の説明には「パッケージ名の末尾に".js"をつける必要はありません、不要です」と説明があります。が、気にせず付けてください
- 拡張子を付けておくことで開発言語の特定が簡単になります。これは将来 WebModule が JavaScript 以外の環境(たとえばTypeScript)をサポートした場合に重要になります
- GitHub リポジトリ名から npm パッケージ名を生成する式が簡単になります
- "uupaa/MyExample.js".replace("/", ".").toLowerCase(); // -> "uupaa.myexample.js"
WebModule のモジュール名を "MyExample.js" とした場合を例に説明します。
GitHub のリポジトリ作成画面で指定するリポジトリ名を "MyExample.js" とします。
Owner Repository name
+-------------------+ +-------------------+
| uupp | / | MyExample.js |
+-------------------+ +-------------------+
この状態で node ../WebModule/clone コマンドを実行すると、このような package.json が生成されます。
{
"name": "uupaa.myexample.js",
"url": "https://github.com/uupaa/MyExample.js",
"repository": {
"type": "git",
"url": "https://github.com/uupaa/MyExample.js.git"
},
...
}npm publish コマンドで npm に登録されるパッケージ名は uupaa.wmexample.js になります。
まとめるとこうなります
| 名前 | |
|---|---|
| GitHub ユーザ名 | uupaa |
| WebModule 名 | MyExample.js |
| GitHub リポジトリ名 | MyExample.js |
| npm パッケージ名 | uupaa.wmexample.js |