ãæåã¯ãã¹ãŠã®åå以äžã§ãããããã¯éåžžã«å€ã
GTDã®ååã§ãããã®å¹Žéœ¢ã¯ããããæ°åæ³ã§ãã ïŒããšãã°ããŠã£ãã¯ã©ãŒã
ã¯çŸåš ããããã¢ãªã¹ããã¬ã¹ã«åž°å±ãããŠ
ããŸããã蚌æ ãè£ä»ãããã®ã§ã¯ãããŸãããïŒãã®æ¬è³ªã¯
ããããžã§ã¯ãããŒãããéå§
ããããšã¯éåžžã«å°é£ãªå Žåãããããšã§ãã ããããããã€ãã®ç°¡åãªåæã¹ããããããããã®å®è£
ãéšåçã«å®æãããããžã§ã¯ãã®å€èгã«ã€ãªããå Žåããæ
£æ§ã«ãã£ãŠãäœæ¥ãç¶ããããšãã¯ããã«ç°¡åã«ãªããŸã-ãã®ãããžã§ã¯ãããã§ã«éå§ãããã ãã§ãªããããã«æºåãã§ããŠããããã«ç°¡åã§ãååããã ãŸããæåã®ã¹ããããã©ãããã¹ãããäºåã«ããç¥ã£ãŠããå Žåããããè¡ãããšã§ééããç¯ãããšã¯å°é£ã§ãã
ãªãŒãã³ãœãŒã¹ã®Node.jsçšã«12å以äžã®ã¢ãžã¥ãŒã«ãäœæããnpmããã±ãŒãžãšããŠå
¬éããæ©äŒããããŸããã ããå€ãã®ã¢ãžã¥ãŒã«ãäœæããã°ããã»ã©ãããããäœæããããã®æåã®ã¹ãããã¯åãã§ãããåãé åºã§å®è¡ã§ããããšãããïŒè©Šè¡é¯èª€ãå«ãïŒæ°ã¥ããŸããã 仿¥ãNodeãšã³ãžã³çšã®JavaScriptã³ãŒããèšè¿°ããããã°ã©ããŒã®äœæ¥ã«åœ¹ç«ã€ããšãæåŸ
ããŠããã®é åºãå
¬éããŸãã
ãããã®åã¹ãããã¯éåžžã«ã·ã³ãã«ã§è«ççã§ãã
ã¹ããã1. npmããã±ãŒãžåãšãªããžããªãäœæãã
ååããªããã°ãäœãæ©èœããŸããã ãããžã§ã¯ãã®ååããªããšãgithubã®ãªããžããªãŸãã¯npmããã±ãŒãžãäœæã§ããŸããã
npmããã±ãŒãžåãäºåã«ååŸãããŠããªãããšã確èªããŠãã ããã ïŒäŸã¯æ¬¡ã®ãšããã§ããç§ã«ããã±ãŒãžã«ãautumnã
ãŸãã¯ãfall ããšããååãä»ããããšã«ããå Žåã¯ã
httpsïŒ//www.npmjs.org/package/autumn ããã³ https://www.npmjs.org/package/fallã« ã¢ã¯ã»ã¹ ã㊠ãã ããããããã®ååã®npmããã±ãŒãžãæ¢ã«ååšããããšãåŽåè
ã確信ãããŸããïŒ
npmããã±ãŒãžã®ååãåçŽãªåèªãŸãã¯ããç¥ãããå°éçšèªã§ããå Žåããªããžããªã®ååãååŸããããã«
ãnode-ããã¬ãã£ãã¯ã¹ã远å ããããšãæ€èšã
ãŠãã ããã ïŒããšãã°ã
sqlite3ããã±ãŒãžã®ã³ãŒãã¯
node-sqlite3ãªããžããªã«ä¿åããã
openããã±ãŒãžã®ã³ãŒãã¯
node-openãªããžããªã«ä¿åãããŸããïŒãã®è¿œå ã¯ãä»ã®ããã°ã©ãã³ã°èšèªã§åãååã®ãããžã§ã¯ãã«åãçµãããã°ã©ããŒã®äŸ¿å®ã®ããã«è¡ãããŸãã ïŒããšãã°ã
誰ãããã§ã«RustãRubyããŸãã¯Pythonã§ãopenããšåŒã°ãããããžã§ã¯ããæã£ãŠããå Žåãååã®ç«¶åã®çµæãçµéšããã®ã§ã¯ãªãã圌ãš
ããŒããªãŒãã³ãªããžããªãéžæãããŠããªããã©ãŒã¯ãè¡ãããšãã§ããŸããïŒ
npmããã±ãŒãžã«ã¯çãååãšé·ãååããããŸããïŒ çãå Žåã¯æåã§å
¥åããæ¹ãç°¡åã§ãïŒããšãã°ã
ã npm install ãã®åŸã®ã³ãã³ãã©ã€ã³ã§ïŒãé·ãå Žåã¯ã³ããŒãããŸãïŒãã®ã¢ã¯ã·ã§ã³ã¯ããæ£ç¢ºã§ãããæéãããããå©äŸ¿æ§ãäœããšèªèãããŸãïŒã ãŸãããµã€ã
nodei.coã¯ãnpmããã±ãŒãžã®ããŠã³ããŒãã«é¢ããçµ±èšæ
å ±ãå«ããã¹ãã°ã©ã ãäœæããŸãããã®å¹
ã¯ãããã±ãŒãžåã®é·ãã«ãã£ãŠç°ãªããŸãïŒååå
šäœããã¹ãã°ã©ã ã«åãŸãããã«ïŒã 以äžã«2ã€ã®äŸã瀺ããŸãã
![[ãã¹ãã°ã©ã çªå·1ïŒuue]](https://habrastorage.org/getpro/habr/post_images/868/ece/ee6/868eceee623da3c1bacd792decf19e67.png)
![[ãã¹ãã°ã©ã çªå·2ïŒfidonet-jam]](https://habrastorage.org/getpro/habr/post_images/261/b5b/f3b/261b5bf3b9fe1e77b8f02d0128e7ac4a.png)
ååãé·ãããã¢ãžã¥ãŒã«ã®å Žåããã®ãããªãã¹ãã°ã©ã ã®å¹
ã倧ãããªããšãã¢ãžã¥ãŒã«ã«é¢ããèŠçŽæ
å ±ã®æºåãéå§ãããšã
ã«ãä»ã®ç»åã®å³ãŸãã¯å·Š
ã§ã¯ãªããå¥ã®è¡ã«çµ±èšãé
眮ããå¿
èŠããããŸãã -Githubã®READMEãšåããããç°¡åã§ãã
ã¹ããã2.ç°¡åãªèª¬æã®äœæ
çã説æã¯ãGithubã§ãããžã§ã¯ããäœæãããšããããã³ãã®åŸïŒããšãã°ã
package.jsonãã¡ã€ã«ã®
説æãã£ãŒã«ãã«å
¥åãããšãïŒã«åœ¹ç«ã¡ãŸãã
ã¢ãžã¥ãŒã«ã®æ©èœã説æããçãæç« ã1ã€ã ãæžãã®ãæåã§ãã ããã«ãããæ€çŽ¢æ§ãåäžããå€ãã®ãµã€ãã®ããã±ãŒãžãŸãã¯ãªããžããªã®ååã«ãã€ããŒãªã³ã¯ãä»ããŸãã 説æãé·ããããããšã
Twitter ïŒããã³èª¬æã®é·ããããªãã³ã°ããä»ã®ãµã€ãïŒã®
ã«ãŒãã«åãŸããŸããã ããã«ãããšããããé©åãããšããŠãããªã¹ããæµreadingã«èªãã§ããéãäžè¬ã®äººã
ã¯ãããæåŸãŸã§èªã¿çµããããšã¯ãããŸããã
ã¹ããã3.èªåçã«èªã¿èŸŒãŸããREADMEãã¡ã€ã«ã䜿çšããŠGithubãªããžããªãäœæããŸãã
éåžžãNodeã¢ãžã¥ãŒã«ãªããžããªã¯githubã§äœæãããŸãã ç§ã¯ãã®èŠåã®äŸå€ã«ééããŸãããããã£ãã«ãããŸããã ãããã£ãŠãããã§ã¯GithubãšGitã®äœ¿çšã«åºã¥ããŠãã¹ãŠã®æé ã説æããä»ã®DVCSãŠãŒã¶ãŒ
ãä»ã®ãªãŒãã³ãœãŒã¹ãã¹ãã£ã³ã°ãããã€ããŒã®èªè
ã«ããããã®æé ãèªåèªèº«ã«é©åãããæ©äŒãæäŸããŸããããã¯é£ããããžãã¹ã§ã¯ãããŸããã
https://github.com/newããŒãžã§ããªããžããªã®ååãšèª¬æãèšå
¥ãã
ããšãææ¡ããŸãïŒåã®2ã€ã®æé ã§äž¡æ¹ãèãåºãããšãã§ããŸãïŒããŸãã
READMEãã¡ã€ã«ïŒãããžã§ã¯ãã®èª¬æïŒã
ã©ã€ã»ã³ã¹ ããã¹ã ïŒã³ãŒããã©ãã ãéããŠãããïŒ
ã. gitignoreãã¡ã€ã«ïŒäžèŠãªäžæãã¡ã€ã«ãè£å©ãã¡ã€ã«ããžã£ã³ã¯ãã¡ã€ã«ããªããžããªã«ã¢ããããŒãããªãããã«ããããïŒã
Githubãªããžããªã«æåããå°ãªããšã1ã€ã®ãã¡ã€ã«ãããå Žåããªããžããªãè€è£œããããšãã§ããŸãïŒããšãã°ã
ã git clone ãã³ãã³ãã䜿çšïŒ-ããŒã«ã«ãªããžããªãåæåãããããé«éã§ç°¡åïŒçŽ1.5ãŸãã¯2åïŒã§ãïŒããšãã°ã
ã git init ãã³ãã³ãã䜿çšããŠãèšå®ã«æãå
¥ããŠãgithubãªããžããªã®ã¢ãã¬ã¹ã
origin ãšããŠç»é²ããŸãã
ãã ããGithubã«ãã£ãŠèªåã°ã¬ãŒããããã©ã€ã»ã³ã¹ãã¡ã€ã«ã¯ãå€ãã®å Žåãããèªäœã§ç·šéããå¿
èŠãããïŒããšãã°ãGithubãã°ã€ã³ã䜿çšãã代ããã«ããã«ããŒã ãŸãã¯çµç¹åã瀺ããŸãïŒãã©ã®ãã¡ã€ã«ã®ã¢ã€ãã¢ã«åŸã£ãŠãèªå
çæããã
.gitignoreã«
äœãã远å ããããšãã§ããŸããªããžããªã¯å¿
èŠãããŸããã ãããã£ãŠã人çã§æåã®Nodeã¢ãžã¥ãŒã«ãäœæããªãå Žåã¯ãREADMEãã¡ã€ã«ã®èªåäœæã®ã¿ã«
éå®ã ã以åã®ã¢ãžã¥ãŒã«ã®1ã€ããã©ã€ã»ã³ã¹
ãš .gitignoreæ¢è£œãã³ããŒããããš
ãã å§ãããŸãã ïŒãŒãããã§ã¯ãªããGithub
èªåçæã®çµæããïŒããããå床è¡ãããš
㯠ã ã ã ïŒç¡é§
ãäœåãªäœæ¥ïŒã§ãããç·šéã®å±¥æŽãä¹±éã«ããç¡é§ã§ãã
Githubã§ãªããžããªãäœæããåŸããªããžããªèšå®ã«å¿
èŠãªãã¹ãŠã®å€æŽãå¿ããã«è¡ã£ãŠãã ããã ããšãã°ãæéãã»ãšãã©ãªããããWikiãç£èŠããæéããªãå Žåã¯ããªããžããªã§WikiãµããŒããç¡å¹ã«ã§ããŸãã ãŸããããšãã°ãä»ã®ãªããžããªã ãã§ãªãããã¹ãŠã®ãªããžããªã ãã§ãªããã¹ã¿ãŒä»ããªã¹ãïŒæã§ããŒã¯ããããªããžããªã®ãªã¹ãïŒã®è¡šç€ºã«æ
£ããŠããå Žåã¯ãæåã«äœæãããªããžããªãããã«æ°ããäœæãããªããžããªã«é
眮ã§ããŸãã
ã¹ããã4.ã©ã€ã»ã³ã¹ä»ãã®ããã¹ããã¡ã€ã«ã远å ãã
ãã®ã¹ããããé
ãããªãããšããå§ãããŸãã以éã®ãã¹ãŠã®ç·šéãã©ã®ã©ã€ã»ã³ã¹ã«é©çšãããã®ããæ©ãã«æããã«ããã®ãè¯ãã§ãããã
åã®ã¹ãããã§è¿°ã¹ãããã«ã人çã®æåã®Nodeã¢ãžã¥ãŒã«ãäœæããŠããªãå Žåã¯ãå¥ã®ã¢ãžã¥ãŒã«ãã
LICENSE ãã¡ã€ã«ãã³ããŒããå¿
èŠã«å¿ããŠããã¹ãã®å¹Žãä¿®æ£ããã³ãããã§ããŸãã
ãªãŒãã³ãœãŒã¹ã³ãŒããé
åžããã©ã€ã»ã³ã¹ãåããŠæ±ºå®ããå Žåã¯ãã³ãã¥ããã£ã®äŸã«åŸãããšãã§ããŸãïŒNode.jsã³ãã¥ããã£ã§ã¯ãç§ã®ç¥ãéããMITã©ã€ã»ã³ã¹ãæã人æ°ããããŸããããã®ã«ãŒã«ã«ã¯äŸå€ããããŸãïŒ ïŒããŸãã¯
choosealicense.com ããŸãã¯ãã®äž¡æ¹ãåç
§ããŠãã ããã
ã¹ããã5. .gitignore ããã³ .npmignoreãã¡ã€ã«ã远å ãã ã
ãåãã®ãšããã
.gitignoreãã¡ã€ã«ã«ã¯ãGitãªããžããªã«ããã¹ãã§ã¯ãªããã¡ã€ã«ãšãã£ã¬ã¯ããªã®ååããªã¹ããããŠããŸãã ãããã«ã¯ãååãšããŠããããžã§ã¯ãã®ã¢ãŒã«ã€ããšé
åžããã°ãããŒã¿ããŒã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®è£å©ãã¡ã€ã«ïŒããšãã°ãç¹å®ã®ãµããã£ã¬ã¯ããªã«å«ãŸããç»åã®ãµã ãã€ã«ã®ãªããžããªïŒãå«ãŸããŸãã
1ã€ãŸãã¯è€æ°ã®Nodeã¢ãžã¥ãŒã«ãäŸåé¢ä¿ãšããŠäœ¿çšããããããžã§ã¯ããéçºããå ŽåãããŒãžã§ã³ãšnpmããã±ãŒãžã®ã³ã³ãã³ããšã®å¯Ÿå¿ã¯æç¢ºãªã®ã§ã
node_modulesãã£ã¬ã¯ããªåã
.gitignoreãã¡ã€ã«ã«è¿œå ããããšã¯éåžžã«é©åã§ãããããã£ãŠãGitãªããžããªã«ãã¡ã€ã«ã®ã¿ãä¿åããã ãã§ååã§ã
package.json ïŒäŸåé¢ä¿ã®ååãšããŒãžã§ã³ããªã¹ãããŸãïŒããå¿
èŠãªã¢ãžã¥ãŒã«èªäœã¯ãªã¹ãããŸããã
ïŒç§ã®èŠéãåºããããã«ãMikeal Rogersã¯å®å
šã«å察ã®å§åã
äœæã ãç©æ¥µçã«æšé²ããããšã«èšåããŸããããããããã¯2014幎ã«npmããã±ãŒãžã®ããŒãžã§ã³ãšã³ã³ãã³ãã®å¯Ÿå¿ã
æç¢ºã«ãªã
åã«èµ·ãããŸãã
ïŒãnpm-debug.logã¬ããŒãã®ååã
.gitignoreãã¡ã€ã«ã«è¿œå ãããšäŸ¿å©ã§ã
ããã®ãã¡ã€ã«ã¯
ã npmããã±ãŒãžã®æäœäžã«ãšã©ãŒãçºçããå Žå
ã«è¡šç€ºãããŸãã
ãã®çµæã
.gitignoreãã¡ã€ã«
㯠äœããã®åœ¢åŒã
åããŸãã
.gitignore# , *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip # , *.log *.sql *.sqlite # Thumbs.db Desktop.ini .DS_Store* ehthumbs.db Icon? # Node, npm node_modules npm-debug.log
.npmignoreãã¡ã€ã«
ã¯.gitignoreãã¡ã€ã«
ã«ã»ãŒäŒŒãŠã
ãŸãã ãã¢ãžã¥ãŒã«ã®
npmããã±ãŒãžã«å«ããã¹ãã§ã¯ãªããã¡ã€ã«ãšãµããã£ã¬ã¯ããªã®ååããªã¹ãããŸãã
.gitignoreã®å
容å
šäœã
.npmignoreã«ã³ããŒããŠããã
ãã¹ããµããã£ã¬ã¯ããªã®ååãŸãã¯ã¢ãžã¥ãŒã«ã®ãã¹ããä¿åããä»ã®å Žæã远å ããããšããå§ãããŸãã ãã¹ãã¯éçºã«éåžžã«åœ¹ç«ã€ããã
Gitãªããžããªã§ãéåžžã«é©åã§ã
ãããã¹ãã®ããŠã³ããŒããšä¿åã¯ã¢ãžã¥ãŒã«ã®ãšã³ããŠãŒã¶ãŒã«ãšã£ãŠäœåãªè² æ
ã«ãªããŸããã€ãŸãã
npmããã±ãŒãžã®å€§éšåã®æ¶è²»è
ã¯ãããã§æ§æãããŸã
ãååãšããŠãæ°ããNodeã¢ãžã¥ãŒã«ã§äœæ¥ãéå§ãããšãã
.gitignore ããã³.npmignoreãã¡ã€ã«ã以åã®ã¢ãžã¥ãŒã«ãã倿Žããã«ã³ããŒã§ããŸãïŒäººçã§æåã®Nodeã¢ãžã¥ãŒã«ãäœæããŠããå Žåãé€ãïŒã ãŸãã«ä¿®æ£ããå¿
èŠããããŸããããã®ãããªå Žåãçºçããããšãç¥ã£ãŠããå¿
èŠããããŸãã ïŒç¹ã«ã
ããããã®ã¢ãžã¥ãŒã«
ãZIPã¢ãŒã«ã€ããåŠç
ããå Žåãå°ãªããšã1ã€ä»¥äžã®ãã¹ãã±ãŒã¹ããªããžããªã«é
眮ããããã«ã
.gitignoreãã¡ã€ã«ãã
ã * .zip ãè¡ãåé€ããå¿
èŠããããŸãããã®ãããªããŒãºãçããŸãããããšãã°ã
Fidonetã®nodelistãèªã¿åãããã®
ã¢ãžã¥ãŒã«ãéçºãããšãã
ã¹ããã6. README.mdã®ã¢ãžã¥ãŒã«ã®èª¬æãã©ã€ã»ã³ã¹ããã³æªå®æã®éçºã«ã€ããŠã®èª¬æã
3çªç®ã®ã¹ãããã§ãã¢ãžã¥ãŒã«ã®ååãšç°¡åãªèª¬æã®ã¿ã§æ§æããã
READMEãã¡ã€ã«ãèªåçã«äœæãããããšãæãåºããŸãã
ããã§ããã®èª¬æã¯ãããžã§ã¯ãã®ç®æšãšç®çã«ã€ããŠè©±ãããšã§ããããè£å
ã§ããŸãã ããã«ã説æã®å¥ã®ãµãã»ã¯ã·ã§ã³ã§ãã©ã€ã»ã³ã¹ã®çš®é¡ïŒããšãã°ãMITãŸãã¯BSDïŒãšãã©ã€ã»ã³ã¹ã®å
šæ
ãå«ããã¡ã€ã«ã®ååïŒéåžžã¯
LICENSE ïŒã«èšåããããšãé©åã§ãã
èªè
ããã®æ®µéã§ã¢ãžã¥ãŒã«ã®æ©èœãå®éã«ç¥ã£ãŠãããšãã詊ã¿ã倱æãåŒãèµ·ãããªãããã«ïŒãŸãã¯ãããã«è¯ãããšã«ã¯ããã®ãããªè©Šã¿ããããŸã§ã®ãšãããŸã£ããçºçããªãããã«ïŒãã¢ãžã¥ãŒã«ã®éçºãäžå®å
šã§ããã ãã§ãªããåææ®µéã
ãã®ãããªè£å
ã®åŸãREADMEãã¡ã€ã«ã¯
npmããã±ãŒãžã®åæããŒãžã§ã³ã®åæèšè¿°ãšããŠé©ããŠã
ãŸãããã ããREADMEã§äºå®ãããŠããããã±ãŒãžåã«ã€ããŠèšåããŠããå Žåããã®ã¹ãããã®çµæããªããžããªã«æ¥ãã§æçš¿ããªãã§ãã ããïŒããšãã°ã
gitã³ãã³ã commitãäœ¿çš ïŒãããã«ãgithubã§ããããå
¬éããããšãæ¥ããªãã§ãã ããïŒããšãã°ã
gitã³ãã³ã push ïŒ ã å®éã«ã¯ãèšç»ãããååã®ããã±ãŒãžã®æåã®ç»é²ïŒã€ãŸããæ¬¡ã®ã¹ãããã§åŠçããŸãïŒã倱æããå ŽåãREADMEã§ã¯å¥ã®ååãç»é²ããå¿
èŠããããŸãïŒããã«ãããç·šéå±¥æŽã®ç®è©°ãŸããšæ¶å»ã®éã®äžå¿«ãªéžæã«ã€ãªãããªãæ¹ãè¯ãã§ãããïŒ ïŒ; Githubã§ã®å
¬éïŒnpmã§ã®å
¬éã«å
è¡ããå ŽåïŒã¯
äžéšã®ãµã€ããŒã¹ã¯ã¯ãã¿ãŒïŒããªãã®åã«ããã±ãŒãžåãè³ãããïŒãèŠå
ããããšãã§ããŸãããæ®éã®ãŠãŒã¶ãŒïŒã³ãã³ããnpm install
package-nameããªããããæåŸ
ã©ããã«æ©èœããªãã®ãçåã«æããŸãïŒã
äžè¬ã«ããã®ã¹ãããã§ã¯ãREADMEã§ããã±ãŒãžåãèšç»ããã®ã¯æ©ããããšèããããšããå§ãããŸãã
æé 7. package.jsonãäœæããåæããŒãžã§ã³ã®npmããã±ãŒãžãç»é²ããŸãã
ãã®ã¹ãããã®æçµçãªç®æšã¯ã以åã«èããããååã§
npmããã±ãŒãžãç»é²ããŠããã®ååãææã¡ããããšã§ãã
package.jsonãã¡ã€ã«ãäœæãããã®äžã®ãªããžã§ã¯ãã®ããã€ãã®ãã£ãŒã«ãã«å
¥åããããšã«ããããã®ã¹ããããéå§ããå¿
èŠããããŸãã ãã®å Žåã
JSON圢åŒãš
npm Webãµã€ãã§æäŸ
ããããã£ãŒã«ãã®æå³ã®èª¬æãåæã«èгå¯ããå¿
èŠããããŸã
ãã¢ãžã¥ãŒã«ã«ã€ããŠè³ªåããã
npm init ãã³ãã³ãããããåçã«åŸã£ãŠ
package.jsonãèªåã§å
¥åããŸãã ãã ããç§ã¯
package.jsonãããã¹ããšãã£ã¿ãŒã§å
¥åããããšã奜ã¿ãŸã-ããã«ããããã¹ãŠã®JSONã³ãŒããïŒè³ªåã§åžéãããŠããªãïŒæãçŽç²ãªåœ¢åŒã§ç¢ºèªã§ããããã«ãå¿
èŠã«å¿ããŠ
äœããä¿®æ£ãŸãã¯å€æŽããããã®ç°¡åãªæ©äŒãåŸãããŸãã
å®éã
npmãµã€ãã®ããã¥ã¡ã³ãã¯èª°ã«ãšã£ãŠãååãªã¯ãã§ãã ããããç§ã¯ãããææ
¢ãããHabrahabrã§ã¯
ã package.jsonã«é
眮ã
ããŠããäž»èŠãªãã£ãŒã«ãã®æå³ã«ã€ããŠç°¡åã«è§ŠããŸãã
ã
name ããã£ãŒã«ãã®å€ã¯ãç®çã®npmããã±ãŒãžåã瀺ããŸãã ãã£ãšæ©ã段éã§ïŒæåã®ã¹ãããã§ïŒèããããšãã§ããŸãã
ã
ããŒãžã§ã³ ããã£ãŒã«ãã®å€ã¯ã
ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°æšæºã«åŸã£ãŠããã±ãŒãžã®ããŒãžã§ã³ã瀺ããŸãã åæããŒãžã§ã³ãç»é²ããã«ã¯ã
" " 0.0.1 " "ããå§ãã
ãŸããã
説æ ããã£ãŒã«ãã®å€ã¯ãããã±ãŒãžã®ç°¡åãªèª¬æã瀺ããŸãã ããªãã¯ãã£ãšæ©ãïŒç¬¬2段éã§ïŒèããããšãã§ããŸãã
ã
ããŒã¯ãŒã ããã£ãŒã«ãã®å€ã¯ãnpmãµã€ãã§ã®æ€çŽ¢ã§ããã±ãŒãžãèŠã€ããããã®ããŒã¯ãŒãã®é
åã瀺ããŸãã Habrahabrã®ããã°æçš¿ã®ããã¹ãã®äžã«ã©ãã«ããªã¹ãããããš
ããã人ãªã誰ã§ãããã®ã¿ã¹ã¯ã«ç°¡åã«å¯ŸåŠã§ããŸãã
ã
license ããã£ãŒã«ãã®å€ã¯ã
SPDX IDæšæºã«æºæ ããèå¥åæååã瀺ãã以åã«ã³ãŒãçšã«éžæããã©ã€ã»ã³ã¹ïŒ4çªç®ã®ã¹ãããïŒãæå³ããŸãã
ã
author ããã£ãŒã«ãã®å€ã¯ãããã±ãŒãžã®äœæè
åïŒããã³å Žåã«ãã£ãŠã¯é£çµ¡å
æ
å ±ïŒãå«ãæååïŒãŸãã¯ãªããžã§ã¯ãïŒã瀺ããŸãã ããã«èªåèªèº«ã瀺ããŸãã
ã
ãªããžã㪠ããã£ãŒã«ãã®å€ã¯ã
ãªããžããªã®ã¿ã€ããšã¢ãã¬ã¹ãå«ããªããžã§ã¯ãã瀺ããŸãã
ã
main ããã£ãŒã«ãã®å€ã¯ãã¢ãžã¥ãŒã«ã³ãŒãã®ã¡ã€ã³ãã¡ã€ã«ãžã®ãã¹ã瀺ããŸãïŒããã¯ã
moduleNameã®ä»£ããã«ã¢ãžã¥ãŒã«ã®ååãæå®ããå ŽåãNode颿°
ã requireïŒ moduleName ïŒ ãããåŒã³åºããããã¡ã€ã«ãšåãã§ãïŒã
ã¢ãžã¥ãŒã«ãã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ãšããŠäœ¿çšãããå Žåãå€ã
ã true ãã®
packageGeneralããããã£ïŒã¢ãžã¥ãŒã«ã®ã°ããŒãã«ã€ã³ã¹ããŒã«ãæšå¥šããŸãïŒããã³
ã ãã®ãããªå€ã®ããããã£
ã bin ã ãpackage.jsonã®ãã®ãããªã¢ãžã¥ãŒã«
ã«åœ¹ç«ã¡ãŸã
ã moduleName.js " " javascriptïŒã¢ãžã¥ãŒã«ã®ååã«äžèŽããã³ãã³ãã«ãã£ãŠèµ·åããããã®ïŒãžã®ãã¹ãå«ãã
ã ïŒïŒ/ Usr / bin / env node ããšããè¡ã¯ãnpmãïŒjavascriptã®ã€ã³ã¹ããŒã«ãšããã«ç¶ãæäœãWindowsã§å®è¡ãããå Žåã§ãïŒãããåç
§ããããããã®ãããªjavascriptã®æåã®è¡ã§ãã
ãã®ã¹ãããã®ã¢ãžã¥ãŒã«ã³ãŒãã¯æãåçŽãªãã®ã«ããããšãã§ããŸããããšãã°ã
ãã皮㮠ã hello world ãã
ãuse strict ããªã©ã§ããã³ãããã®èª¬æã§ã¯ããããã±ãŒãžãç»é²ãããŠããããšãããã¬ãŒãºïŒãŸãã¯ãããã±ãŒãžãå
¬éãããŠãããïŒãå
¥ããŠã
ã npm publish ãã³ãã³ããæåããå Žåã«ã®ã¿ã³ãããããŸãã ãããã£ãŠãã³ãããã¯ææå°æ©ã§ã¯ãããŸããïŒ
ã npm publish ãã³ãã³ããçºè¡ãããšã1ã€ä»¥äžã®åçŽãªãšã©ãŒãæããã«ãªãããšããããŸããããã®ä¿®æ£ã¯ç·šéã®å±¥æŽãç¡é§ã«ããã ãã§ãïŒã
ã¹ããã8. README.mdã®ã€ã³ã¹ããŒã«ã®èª¬æ
ãã®ã¹ãããã§ã¯ãREADME.mdãã¡ã€ã«ã«ãå°æ¥ã®ãŠãŒã¶ãŒã«2ã€ã®ã³ãã³ãã®æå³ãäŒãã説æãå
¥ããããšãé©åã§ãã
- npm installããã±ãŒãžåã¯ãnpmãªããžããªãã npmããã±ãŒãžãã€ã³ã¹ããŒã«ããã³ãã³ãã§ãã
- npm install https://github.com/User name / Repository name / tarball / master - githubãªããžããªã® masterãã©ã³ãããã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããã³ãã³ãã
å°æ¥ã®ãŠãŒã¶ãŒã«äžæ¹ã®ããŒã ãšä»æ¹ã®ããŒã ã®çµæã®éãã説æããããšã圹ç«ã¡ãŸã-ããšãã°ãnpmã§ã¯ãªãGithubã®ã¿ã«ãã¹ããä¿åããïŒ
npmããã±ãŒãžã®ããªã¥ãŒã ãå¢å ãããªãããã«ããïŒããã«å
ã«ïŒ5çªç®ã®ã¹ãããã§ïŒè¡ãããæ±ºå®ã«ã€ããŠäŒããããã«
ãŸããREADME.mdãã¡ã€ã«ã®ææ°ããŒãžã§ã³ã¯Githubã«ã®ã¿ååšããããšãããããŸãïŒã³ãŒãã®å€æŽåŸã ãã§ãªããREADMEã®å€æŽåŸã
npmããã±ãŒãžã®æ¬¡ã®æ°ããããŒãžã§ã³ãäœæããã³å
¬éããäºå®ããªãå ŽåïŒã
åãã¹ãããã§ã
nodei.coã® Webãµã€ãã§ãäŸåé¢ä¿ã®æ°ãšã¢ãžã¥ãŒã«èšå®ã瀺ãæ
å ±çµ±èšã«ãŠã³ã¿ãŒãšãã¹ãã°ã©ã ã®é©åãªã³ãŒããååŸããREADME.mdãã¡ã€ã«ã«é
眮ããããšãã§ããŸãã
ã¹ããã9.ã¡ã€ã³ã¢ãžã¥ãŒã«ã³ãŒãã®äœæ¥ã®éå§
ãã®æ®µéã§ã¯ãã¢ãžã¥ãŒã«ã®åºç€ïŒã€ãŸãã
ãã皮㮠ã hello world ããŸãã¯
ãuse strictã ïŒããã£ãããšåççãªäœããè¡ãã³ãŒãã«å€ããã€ã€ããããã1ã€ä»¥äžã®é¢æ°ïŒãŸãã¯ãªããžã§ã¯ãã®ã¡ãœããããŸãã¯ãŠãŒãã£ãªãã£ã³ãã³ãïŒã
ãœãŒã¹ã³ãŒãã®ããããã¹ãŠã®æ©èœã¯ããã«ããããšãã«README.mdã§æ
éã«ææžåããŠãã³ãŒãèªäœããªãŒãã³ãœãŒã¹ã³ãŒãã®å¯äžã®ææžã«ãªããªãããã«ããå¿
èŠããããŸãã
ããã«ããœãŒã¹ã³ãŒãããã®æ®µéã«éãããšããã«ãã³ãŒãã®æ£ç¢ºæ§ãšãã®åäœãæ€èšŒãããã¹ãã§ãããã«ããŒãããšããã«äŸ¿å©ã§ãã ãããæ¬¡ã®ã¹ãããã§ãã
ã¹ããã10.ãã¹ããä¿é²ãã説æããŸãã
ãã®ã¹ãããã§ã¯ãREADME.mdã«ããœãŒã¹ã³ãŒãã®æ£ããã¹ãã«ïŒããšãã°JSHintïŒãšãã®åäœïŒããšãã°ãMochaïŒãã€ã³ã¹ããŒã«ããæ¹æ³ãšãã¹ãããææ®µã®äœ¿ç𿹿³ã«é¢ããæç¢ºãªæ
å ±ãå
¥åããå¿
èŠããããŸãã
ãã®æç¹ã§ããã¹ãããŒã«ã®æ§æãã¡ã€ã«ïŒããšãã°ã
JSHintã®.jshintrcïŒããªããžããªã«è¿œå ãããŸãã
scripts.testãã£ãŒã«ãã¯ã
package.jsonãã¡ã€ã«å
ã®ãªããžã§ã¯ãã«å
¥åãããŸãïŒ2ã€ãŸãã¯3ã€ã®ãã¹ãããŒã«ãããå Žåã
scripts.pretest ããã³scripts.posttestãã£ãŒã«ã
ã å
¥åãããŸã ïŒãäŸïŒ
"scripts": { "pretest": "jshint .js test/", "test": "mocha --reporter spec --timeout 60s" }
ãã®ã¹ãããããéå§ããŠãåã³ãããã®åã«ã
npm testã³ãã³ãããšã©ãŒãªãã§ãã¹ããããšã確èªããããšããå§ãããŸãã ïŒãã®ã³ãã³ããããæå³ã®ãããã®ã«ããã«ã¯ãMochaã䜿çšãããšãã«ãå°ãªããšã1ã€ã®ãã¹ããèšè¿°ãã
test /ãµããã£ã¬ã¯ããªã«é
眮ããå¿
èŠããããŸã
ãïŒã¹ããã11. Travis CIã®æ§æ
Travis CIã¯ãç¡æã®ãªãŒãã³ãœãŒã¹ãã¹ããµãŒãã¹ãæäŸãããµãŒãã¹ã§ããã³ããããããã³ã«ãGithubããã³ãŒããèªåçã«ããŠã³ããŒãããããŸããŸãªç°å¢ã§ãã¹ããå®è¡ããŠãã³ãŒããæ£åžžã«æ©èœãããã©ããã確èªã§ããŸãã
Travis CIãæåã«äœ¿çšããæºåãã€ãŸã
ããã¥ã¡ã³ãã
èªãã§ç»é²
ããããšããå§ãããŸãã
æ°ããjavascriptã¢ãžã¥ãŒã«ã®æ¥ç¶ã¯ã¯ããã«ç°¡åã§ã2ã€ã®ç°¡åãªæé ã§æ§æãããŠããŸãã
ãŸãããŠãŒã¶ãŒãããã¡ã€ã«ã®
https://travis-ci.org/profile/ã«ã¢ã¯ã»ã¹ããŸãã ã¹ã€ããã衚瀺ãããŸããåã¹ã€ããã¯ãgithubã®ãªããžããªã®1ã€ã«å¯Ÿå¿ããŠããŸãã æ¬¡ã®
ããã«ãªããŸãã![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/489/6cf/062/4896cf0624be89081f4be378cd5a7ab4.png)
æ°ããã¢ãžã¥ãŒã«ã«å¯Ÿå¿ããã¹ã€ããããªã³ã®äœçœ®ã«åŒãå¿
èŠããããŸãã
次ã«ããã®çŽåŸã«ã.travis.ymlãã¡ã€ã«ããªããžããªã®ã«ãŒãã«ã³ãããããŸãã ãã®ãã¡ã€ã«ã«ã¯ããã¹ãã®å®è¡ã«å¿
èŠãªç°å¢ãèšè¿°ãããŠããŸãã ããã«ã€ããŠã¯Travisã®ããã¥ã¡ã³ãã§è©³ããèªãããšãã§ããŸãããéåžžã®å
容ã¯éåžžã«ç°¡åã§ã次ã®
ããã«ãªããŸãã language: node_js node_js: - "0.10" - "0.12" - iojs before_install: - "npm install -g npm" - "npm config set spin false" before_script: - "npm install jshint" - "npm install mocha"
ã
èšèª ãã»ã¯ã·ã§ã³ã«ã¯ãNodeã®ãèšèªãïŒããæ£ç¢ºã«ã¯ãšã³ãžã³ïŒã®è¡šç€ºã衚瀺ããã
ã node_js ãã»ã¯ã·ã§ã³ã«ã¯ãã¢ãžã¥ãŒã«ããã¹ããããããŒãžã§ã³ã®ãªã¹ãã衚瀺ãããŸãã
before_installã»ã¯ã·ã§ã³ã«ã¯ã
npmãææ°ã®å®å®ããŒãžã§ã³ã«æŽæ°ããã³ãã³ããšãå転ã«ãŒãœã«ã®ã¢ãã¡ãŒã·ã§ã³ãç¡å¹ã«ããã³ãã³ããå«ãŸããŠããŸãïŒTravis CIãã°ã«ã¯ãŸã 衚瀺ãããªããããæéãç¡é§ã«ããããšã¯ãããŸããïŒã
before_scriptã»ã¯ã·ã§ã³ã«ã¯ããã¹ãããŒã«ïŒãã®äŸã§ã¯JSHintãšMochaïŒãã€ã³ã¹ããŒã«ããã³ãã³ããå«ãŸããŠããŸãã
ã¹ããã12. Travis CIã€ã³ãžã±ãŒã¿ãŒã README.mdã«è¿œå ã ãŸã ã
Travis CI
ã¯ãç»å
ã® URLã
æäŸããŸããããã¯ãGithubã®READMEã«1åé
眮ããããã®åŸæ¯åãæåŸã®ã³ãããã®çµæãTravis CIã§æ£åžžã«ãã¹ãããããã©ããã確èªã§ããŸãã
ãµãŒããŒ
shields.ioã¯ããã®ç»åã®ãããã«ç°ãªã圢ç¶ãååŸããæ©äŒãæäŸããŸã-ããšãã°ãããªã¥ãŒã ã®å€æŽããšããžã®äžžã¿ããŸãã¯ç¢æã®äžéšã
ã¡ãœããã®äžè¬å
ããã§
ãNode.jsçšã®ã¢ãžã¥ãŒã«ãéçºããããã®ç°¡åãªåæã¹ãããã®ãªã¹ããçµãã
ãŸãããæããã«ããã®ãããªæ¹æ³ïŒã€ãŸããäºåã«æºåãããæé ã®åçŸããéå§ããããšã§æåã®è¡åãäžããæ©äŒïŒãNodeã®ã¢ãžã¥ãŒã«ã®éçºã«é©ããŠããããšãé¡ã£ãŠããŸãã
äŸãæããŸãããã
éçºè
ã®éº»çºã«é¢ããèšäºïŒ
PerseptronYarã翻蚳ïŒã§ã¯ãHabrahabrã§ãäœæ¥ãéå§ããçŸä»£ã®ãã¹ãŠã®ãµã€ããã«ããŒã¯ã
ããªãã³ããã®ããã«ãã»ãŒåçã®ã¢ããŒã«ã®ç°ãªãå¯èœæ§ã®éã§
æçœãªéžæãããç·æ¥ã®å¿
èŠæ§ã«ããã«çŽé¢ãããšãã話ãèŠãããšãã§ããŸãïŒ ãã ãããã®ãããªéžæãäžåºŠã ãè¡ãããšãã§ãããå°æ¥çã«åã«ããã«åºå·ããããšãã§ããã°ãå°æ¥ã®äººçã倧å¹
ã«ç°¡çŽ åã§ããŸãã ãããè¡ãã«ã¯ããã®ãããªåã¹ãããã§è¡ãããéžæãèšè¿°ããŠä¿®æ£ãã宿ãããã©ãŒã ã«ãããã®ãã¹ãŠã®ã¹ããããæžãçããŠïŒããšãã°ããCSSãã¬ãŒã ã¯ãŒã¯ãéžæãã§ã¯ãªããBootstrapãéžæããå Žåã¯ãBootstrapãã€ã³ã¹ããŒã«ãïŒãããã«åŸã£ãŠãã ããåãããžã§ã¯ãã®éå§æã«ããããžã§ã¯ãã®åéã«ã®ã¿æ°ãã
äœããæèçã«è©Šãçç±ããªãã£ãå ŽåïŒããšãã°ãèªè
ãæ°ãããã©ãŠã¶ã«åŸã
ã«ç§»è¡ãããšãã«ãææ°ã®JavaScriptæ©èœãåªå
ããŠUnderscore.jsã
æåŠã§ããŸãïŒãã®ãããªã«ãŒã ozhnostïŒã