ContainerJSã‚’npmã«ç™»éŒ²ã—ãŸãƒ¡ãƒ¢
ContainerJS ã‚’npmã«ç™»éŒ²ã—ãŸã®ã§ã€æ‰‹é †ã‚’メモã—ã¦ãŠãã¾ã™ã€‚
- ContainerJSã¯ã€JavaScript Webアプリケーション用ã®Dependency Injection コンテナ ã§ã™ã€‚機能ã¯ä»¥ä¸‹ã€‚
- ä¾å˜é–¢ä¿‚ã®è§£æ±ºã¨æ³¨å…¥(DI)
- é…延ãƒãƒ¼ãƒ‰ã«ã‚ˆã‚‹ã€ã‚ªãƒ³ãƒ‡ãƒžãƒ³ãƒ‰ãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒãƒ¼ãƒ‰ã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ç”Ÿæˆ
- アスペクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®ã‚µãƒãƒ¼ãƒˆ
- ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã¯ã“ã¡ã‚‰ → Knockout + ContainerJS でテスタブルにToDoリストを作るチュートリアル
- ※ãªãŠã€AMDã§æ›¸ã„ã¦ã‚‹ã®ã§ã€æ™®é€šã« require ã—ã¦ä½¿ã£ãŸã‚Šã¯ã§ããªã‹ã£ãŸã‚Šãƒ»ãƒ»ãƒ»ã€‚
- Webpackã¨ã‹require.jsã¨çµ„ã¿åˆã‚ã›ã‚Œã°ä½¿ãˆã¾ã™ãŒã€node上ã§ä½¿ã†æ„味ã¯ã‚ã‚“ã¾ã‚Šãªã„ã§ã™ã€‚
- npmã§ç°¡å˜ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãるよã†ã«ã™ã‚‹ã®ãŒå…¬é–‹ã®ç›®çš„ã§ã™ã€‚
公開ã®æ‰‹é †ã¯ã€ã“ã¡ã‚‰ã‚’å‚考ã«ã—ã¾ã—ãŸã€‚
1. npmã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã™ã‚‹
ã¾ãšã¯ã€npmã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’作æˆã—ã¾ã™ã€‚以下ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¦ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åやメールアドレスを入力ã™ã‚Œã°OK
$ npm adduser
- 入力ã—ãŸå†…容ã¯ã€ ~/.npmrc ã«ä¿å˜ã•ã‚Œã¾ã™ã€‚
- 「npm config lsã€ã§ã‚‚確èªã§ãã¾ã™ã€‚
$ npm config ls ; cli configs user-agent = "npm/2.5.1 node/v0.12.0 linux x64" ; userconfig /home/xxxx/.npmrc //registry.npmjs.org/:always-auth = false //registry.npmjs.org/:email = "masaya.yamauchi@gmail.com" //registry.npmjs.org/:username = "unageanu"
2. package.json を用æ„ã™ã‚‹
次ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®åå‰ã‚„説明を記入ã™ã‚‹ package.json を用æ„ã—ã¾ã™ã€‚
以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§å¯¾è©±çš„ã«ä½œæˆã™ã‚‹ã®ãŒç°¡å˜ã€‚ã‚‚ã¡ã‚んテã‚ストエディタã§ç›´æŽ¥ä½œã£ã¦ã‚‚大丈夫ã§ã™(ãŸã¶ã‚“)。
$ npm init
å„é …ç›®ã®è©³ã—ã„è¨å®šå†…容ã¯å…¬å¼ãƒ‰ã‚ュメントをå‚考。
- npm - Specifics of npm's package.json handling
- npm package.json 取扱説明書 (↑ã®æ—¥æœ¬èªžç‰ˆ)
3. 公開ã—ãªã„ファイルを指定ã™ã‚‹
プãƒã‚¸ã‚§ã‚¯ãƒˆå†…ã«é…ä¿¡ä¸è¦ãªãƒ•ã‚¡ã‚¤ãƒ«(テストケースãªã©)ãŒã‚ã‚‹å ´åˆã€ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã®ãƒ«ãƒ¼ãƒˆã«ã€Œ.npmignoreã€ã‚’用æ„ã—ã¦è¨˜è¼‰ã—ã¾ã™ã€‚
- 「.gitignoreã€ã¨åŒã˜å½¢å¼ã§ã€npmã§é…ä¿¡ã—ãªã„ファイルを指定ã§ãã¾ã™ã€‚
- 使ãˆã‚‹ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã¯.gitignoreのドキュメントã‚’å‚考ã«ã€‚
4. npmページã®Topã«è¡¨ç¤ºã•ã‚Œã‚‹èª¬æ˜Žã‚’用æ„ã™ã‚‹
npmã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒšãƒ¼ã‚¸(例:ContainerJSのページ)ã«ã¯ã€ README.md ã®å†…容ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚
プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ«ãƒ¼ãƒˆã« README.md を作æˆã—ã¦ä½¿ã„æ–¹ãªã©ã‚’記入ã—ã¦ãŠãã¾ã™ã€‚
- ファイルåã«æ³¨æ„
- npmã§ã¯ã€ã€ŒREADME.*〠ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚’探ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚ˆã†ã§ã€æœ€åˆã€ŒREADME.ja.mdã€ã€ŒREADME.mdã€ã‚’用æ„ã—ã¦ã„ãŸã‚‰ã€ã€ŒREADME.ja.mdã€ãŒä½¿ã‚ã‚Œã¦ã—ã¾ã„ã¾ã—ãŸã€‚
- 「README_ja.mdã€ã«ãƒªãƒãƒ¼ãƒ ã™ã‚‹ã¨è§£æ±ºã—ã¾ã—ãŸã€‚
5.パッケージを公開ã™ã‚‹
package.jsonãŒã§ããŸã‚‰ã€package.jsonãŒã‚るディレクトリã§ã€Œnpm publishã€ã™ã‚Œã°ã€å…¬é–‹ã§ãã¾ã™ã€‚
$ npm publish
以下ã®URLã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚Œã°ã€ãƒšãƒ¼ã‚¸ãŒã§ãã¦ã„ã‚‹ã¯ãšã€‚
https://www.npmjs.com/package/<モジュールå>
6. パッケージをアップデートã™ã‚‹
「npm version <更新タイプ>ã€ã§package.jsonã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’上ã’ã¦ã‹ã‚‰ã€å†åº¦publishã™ã‚Œã°OK
$ npm version patch $ npm publish
- 更新タイプã®ã¨ã“ã‚ã«ã¯ã€æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‹ã€ã‚¢ãƒƒãƒ—ã—ãŸã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ç¨®é¡ž(patch, minor, major ..etc..)を指定ã§ãã¾ã™ã€‚
- 例ãˆã°ã€patch を指定ã™ã‚‹ã¨ã€ 1.0.0 → 1.0.1 ã«ä¸ŠãŒã‚Šã¾ã™ã€‚
- Git管ç†ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã§å®Ÿè¡Œã™ã‚‹ã¨ã€Gitã®ã‚¿ã‚°(v1.0.1)ã‚‚åŒæ™‚ã«ä»˜ä¸Žã•ã‚Œã¾ã™ã€‚
ã¤ãŽã¯
npmã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã€Webpackã¨çµ„ã¿åˆã‚ã›ã¦ä½¿ã†ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã‚’書ãã¾ã™(ãŸã¶ã‚“)。