ãããªã¢ã«ã®äœæè ããšãããWebéçºã«æºãã£ãŠããããã°ã©ããŒãæçšã§ãããšèããã¢ãžã¥ãŒã«ã®æŠèŠãã玹ä»ããŸãã ãã®äžã«ã¯ãç»åãæäœããããã®ã©ã€ãã©ãªããŠãŒã¶ãŒããã©ãŒã ã«å ¥åããå 容ããã§ãã¯ããããã®ããŒã«ãããŸããŸãªã¿ã€ãã®ããŒã¿ãæé©åããã³çž®å°ããããã®ã¢ãžã¥ãŒã«ãPDFãã¡ã€ã«ãäœæããããã®ããŒã«ãã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã®ãã°ããã³éçºã®ããã®ããŒã«ããããŸãã
ã°ã©ãã£ãã¯ã¹
â1ã ç»åãæäœãã
GraphicsMagickãšImageMagickã¯2ã€ã®äžè¬çãªç»åããŒã«ã§ãã gpm npmã¢ãžã¥ãŒã«ã®ãããã§ãJavaScriptã³ãŒããã䜿çšã§ããŸãã äžè¬ã«ãããããã¹ãŠã«ãããç»åãäœæãç·šéãçµåããããšãã§ããŸãã ããšãã°ããµã€ãºã®å€æŽãåãæãããã©ãŒãããå€æã®å®è¡ã
ãã®ã¢ãžã¥ãŒã«ã§ã®äœæ¥ã¯æ¬¡ã®ããã«ãªããŸãã
const gm = require('gm'); gm('/path/to/image.jpg') .resize(500, 250) .autoOrient() .write(response, error => {});
â2ã ç»ååŠç
sharpã¢ãžã¥ãŒã«ã¯ãä¿¡ããããªãã»ã©é«éãªlibvipsç»ååŠçã©ã€ãã©ãªã«åºã¥ããŠããŸãã ç»åã®å§çž®ãšãµã€ãºå€æŽã®ã¿ã¹ã¯ã§ã¯ã圌ãããŒãžã§è¿°ã¹ãŠããããã«ãImageMagickãGraphicsMagickããã4ã5åé«éã§ãã ãã®ã¢ãžã¥ãŒã«ã¯ãJPEGãPNGãWebPãTIFFãGIFãããã³SVG圢åŒããµããŒãããŠããŸã.JPEGãPNGãWebP圢åŒããŸãã¯ãœãŒã¹ãã¯ã»ã«ããŒã¿ã®éå§çž®ã¹ããªãŒã ã®åœ¢åŒã§ç»åãåºåã§ããŸãã
â3ã ã¹ãã©ã€ãã·ãŒããäœæãã
ã¹ãã©ã€ããªã¹ãã¯ãå€æ°ã®å°ããªç»åïŒã¢ã€ã³ã³ãªã©ïŒãå«ãã°ã©ãã£ãã¯ãã¡ã€ã«ã§ãã ç§ãã¡ã®å ŽåãããããCSSã¹ãã©ã€ãã«ã€ããŠè©±ããŠããŸãã å€ãã®å Žåãç»åã®èªã¿èŸŒã¿ã¿ã¹ã¯ã容æã«ããããã«äœ¿çšãããŸããããã¯ãããŒãžã®åºåé床ã«æçãªå¹æããããããŸãã ã¹ãã©ã€ããªã¹ããæåã§äœæããããšã¯æ©æµã®ãªãäœæ¥ã§ãã spritesmithã¢ãžã¥ãŒã«ã䜿çšããŠãã®ããã»ã¹ãèªååããŸãã ã°ã©ãã£ãã¯ãã¡ã€ã«ã®ãããã©ã«ããŒã«é¢ããæ å ±ã¯ãã®ã¢ãžã¥ãŒã«ã®å ¥åã«éä¿¡ããããããã®ãã¡ã€ã«ãã¹ãŠãåäžã®ã¹ãã©ã€ããªã¹ãã«å€æããŸãã ããã«ãå®æããã¹ãã©ã€ãã·ãŒãã®åç»åã®åº§æšã«é¢ããæ å ±ãå«ãJSONãã¡ã€ã«ãçæããCSSã§äœ¿çšã§ããŸãã
æ¥ä»ãæååãè²
â4ã æ¥ä»ã®ãã©ãŒããã
Moment.jsã¯ãæšæºã®Dateãªããžã§ã¯ãã®åªãã代æ¿æ段ã§ã
æšæºã®JavaScript APIã«ã¯ãæ¥ä»ãšæå»ãè¡šãå€ãæäœããããã«èšèšãããDateãªããžã§ã¯ãããããŸãã ãã ãããã®ãªããžã§ã¯ãã¯ãåºåããã³æ¥ä»ã®æžåŒèšå®ã®å Žåã«ã¯ç¹ã«äŸ¿å©ã§ã¯ãããŸããã æ¥ä»ãšæå»ã®åŠçãç°¡çŽ åããããã«ã Moment.jsã©ã€ãã©ãªã䜿çšã§ããŸãã æ確ã§ææ ®æ·±ãã€ã³ã¿ãŒãã§ãŒã¹ãåããŠããã䜿çšæã«åŸãããã³ãŒãã¯ç解å¯èœã§èªã¿ãããããšãããããŸãã
moment() .add(7, 'days') .subtract(1, 'months') .year(2009) .hours(0) .minutes(0) .seconds(0);
ããã«ããã®ã©ã€ãã©ãªçšã®ãã©ã°ã€ã³ããããããŸããŸãªã¿ã€ã ãŸãŒã³ã®æ¥ä»ã解æããã³ãã©ãŒãããããããã«äœ¿çšãããŸãã
â5ã æååããŒã¿ã®æ€èšŒ
ãµã€ãã®ãŠãŒã¶ãŒã«ãã©ãŒã ãžã®å ¥åãæäŸããå Žåã¯ãå ¥åããããŒã¿ã確èªããããšãå¿ããªãã§ãã ããã ãããè¡ãããšã¯ãã¯ã©ã€ã¢ã³ãåŽã ãã§ãªãããµãŒããŒäžã§ããããŸã-æ»æè ã«ãã£ãŠéä¿¡ãããå±éºãªããŒã¿ãé€å€ããããã æååãã§ãã¯ã®åé¡ã解決ããããã«èšèšãããã¢ãžã¥ãŒã«validate.jsã¯ãéçºè ã«å€ãã®äŸ¿å©ãªã¡ãœãããæäŸããŸããããã®ç®çã¯ååããæããã§ãã ããšãã°ããããã¯ã¡ãœãã
isEmail()
ã
isURL()
ã
isMobilePhone()
ã
isCreditCard()
ã§ãã ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã§äœ¿çšã§ããŸãã
â6ã è²ã®å€ãæäœãã
è²ãè¡šãå€ããã圢åŒããå¥ã®åœ¢åŒã«å€æããããšã¯ãããã³ããšã³ãéçºè ãå®æçã«çŽé¢ããã¿ã¹ã¯ã®1ã€ã§ãã TinyColor2ã¢ãžã¥ãŒã«ã¯ããã®åé¡ã®è§£æ±ºãç°¡çŽ åããŸãããã©ãŠã¶ãšNode.jsã®äž¡æ¹ã§äœ¿çšã§ããŸãã
toHexString()
ã
toRGBString()
ãªã©ã®è²ã®å€ãå€æããããã®äžé£ã®ã¡ãœãããšãè²ã§ããŸããŸãªæäœãå®è¡ããããã®ã¡ãœãããããã°ã©ãã«æäŸããŸãã ãããã®äžã«ã¯ã
lighten()
ã
saturate()
ã
complement()
ãŸãã
ããŸããŸãªåœ¢åŒã®ããŒã¿ãæäœãã
â7ã PDFãäœæãã
PDFãã¡ã€ã«ãåçã«çæããå¿ èŠãããå Žå-PDFKitã¢ãžã¥ãŒã«ã«æ³šæããŠãã ãã ã ããã°ã©ã ã§çæãããïŒCanvasã«äŒŒãAPIã䜿çšããŠïŒããŸãã¯SVG圢åŒã§äœæãããããã¯ã¿ãŒãã©ã³ãã®ç»åã説æããã©ã³ãã®ããã¥ã¡ã³ããžã®åã蟌ã¿ããµããŒãããŠããŸãã ããã«ããã®å©ããåããŠããã€ããŒãªã³ã¯ãäœæãããããã¡ã€ã«ã«ã¡ã¢ãå«ããããããã¹ããéžæããããããã«äŸ¿å©ãªããšãå®è¡ãããã§ããŸãã ãããããã®ãããªãã®ãå¿ èŠãªå ŽåãPDFKitã䜿ãå§ããã«ã¯ããã©ãŠã¶ãŒã§åäœããã€ã³ã¿ã©ã¯ãã£ããªãã¢ãè©ŠããŠã¿ã䟡å€ããããŸãã
â8ã HTMLãã¡ã€ã«åŠç
Cheerioã䜿çšãããšããµãŒããŒäžã®HTMLãã¡ã€ã«ãç°¡åã«è§£æã§ããŸã
ãµãŒããŒäžã®HTMLãã¡ã€ã«ã解æããå¿ èŠããããåæã«jQueryæ©èœãäžè¶³ããŠããç¶æ³ã«é¥ã£ãå Žåã¯ã Cheerioã調ã¹ãå¿ èŠããããŸãã ãã®ã¢ãžã¥ãŒã«ã¯jQueryã®æ©èœã®ãµãã»ããã®å®è£ ã«ãããŸãããããµãŒããŒäžã®HTMLãã¡ã€ã«ã®è§£æãã¯ããã«ç°¡åã«ããŸãã htmlparser2ã¢ãžã¥ãŒã«ã«åºã¥ããŠæ§ç¯ãããŠããŸãïŒããã¯HTMLãXMLãRSSã®ããŒãµãŒã§ãïŒã ããã«ããã³ãããŒã¯ã®çµæãèæ ®ãããšããµãŒããŒäžã®DOMãæäœã§ããå¥ã®ã¢ãžã¥ãŒã«ã§ããjsdomããã8åé«éã§ãã
â9ã CSVãã¡ã€ã«åŠç
Node-csvã¢ãžã¥ãŒã«ã«ãããCSVããŒã¿ã®æäœãç°¡çŽ åãããŸã
CSV圢åŒïŒã³ã³ãåºåãå€ïŒã¯ã衚圢åŒã§è¡šç€ºãããããŒã¿ã®äº€æãæŽçããããã«ãã䜿çšãããŸãã ããšãã°ãMicrosoft Excelã§ã¯ããã®åœ¢åŒã䜿çšããŠããŒã¿ããšã¯ã¹ããŒããŸãã¯ã€ã³ããŒãã§ããŸãã node-csvã¢ãžã¥ãŒã«ã¯ãJavaScriptã§CSVããŒã¿ãåŠçããããã»ã¹ãç°¡çŽ åããCSVãã¡ã€ã«ãäœæãåŠçãå€æããããã®ããŒã«ãæäŸããããããæååã«å€æã§ããããã«ããŸãã ãã®APIã¯ã³ãŒã«ããã¯é¢æ°ãã¹ã¬ããããµããŒãããåæããŒãžã§ã³ããããŸããããã«ãããéçºè ã¯å¿ èŠãªãã®ãæ£ç¢ºã«éžæã§ããŸãã
â10ã ããŒã¯ããŠã³ãã¡ã€ã«ã®åŠç
Markdownã¯ãWebçšã«èšèšããããããªã¢ã«ãäœæããããã®äžè¬çãªåœ¢åŒã§ãã ããã°ã©ã ã§ããŒã¯ããŠã³ããŒã¿ãåŠçããå¿ èŠãããå ŽåïŒã€ãŸããç¬èªã®ããŒã¯ããŠã³ãšãã£ã¿ãŒãäœæããå ŽåïŒã ããŒã¯ãããã¢ãžã¥ãŒã«ã確èªããŸãã å ¥åã§ã¯ãããŒã¯ããŠã³åœ¢åŒã®ã³ãŒããååŸãããã§ã«HTMLã³ãŒããåºåããŠããŸãã åæã«ããã®ã¢ãžã¥ãŒã«ã®ããŒã«ã§ã¯ãéçºè ãã«ã¹ã¿ãã€ãºå¯èœãªã¬ã³ããªã³ã°ããŒã«ã䜿çšããŠãåä¿¡ããHTMLã³ãŒããããã«åŠçã§ããŸãã
ããŒã¿ã®æé©åãšçž®å°
â11ã ç»åã®æé©åãšçž®å°
Imagemin-ç»åã®çž®å°ãšæé©åã®ããã®ã¢ãžã¥ãŒã«
Imageminã¯ãç»åãçž®å°ããã³æé©åããããã®åªããã¢ãžã¥ãŒã«ã§ãã gulpãŸãã¯Gruntã®ãã©ã°ã€ã³ã®åœ¢ã§ã³ãã³ãã©ã€ã³ãã䜿çšã§ããŸãããŸããæãäžè¬çãªãã¹ãŠã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§äœ¿çšå¯èœãªGUIã¢ããªã±ãŒã·ã§ã³ã§ããimagemin-appã䜿çšããŠäœæ¥ããããšãã§ããŸãã imageminã¢ãŒããã¯ãã£ã¯ãã©ã°ã€ã³ããŒã¹ã§ãã ããã¯ããã®ã¢ãžã¥ãŒã«ã®æè»æ§ã瀺ããŠãããããŸããŸãªã°ã©ãã£ãã¯åœ¢åŒããµããŒãããæ©èœãæ¡åŒµã§ããããšã瀺ããŠããŸãã
â12ã HTMLãããã¡ã€
html-minifierããŒã«ã¯ãæ¢åã®æé«ã®HTMLãããã¡ã€ã€ãšèŠãªãããå ŽåããããŸã
ç»åãæé©åããåŸãWebã¢ããªã±ãŒã·ã§ã³ã®HTMLã³ãŒããçž®å°ããããšãæ€èšããå¿ èŠããããŸãã ãã®ã¿ã¹ã¯ã¯html-minifierã¢ãžã¥ãŒã«ã«ãã£ãŠè§£æ±ºã§ããŸãããã®ã¢ãžã¥ãŒã«ã¯ã³ãã³ãã©ã€ã³ããæ©èœãã gulpããã³Gruntã§ã䜿çšã§ããŸãã ããã«ãKoaãExpressãªã©ã®Webãã¬ãŒã ã¯ãŒã¯ã«çµ±åã§ãããœãªã¥ãŒã·ã§ã³ããããŸãããã®çµæãHTMLããŒãžãã¯ã©ã€ã¢ã³ãã«éä¿¡ããåã«ããµãŒããŒã®æäœäžã«HTMLãçž®å°ã§ããŸãã ã¢ãžã¥ãŒã«ã®ããŒã ããŒãžã§å©çšå¯èœãªãã³ãããŒã¯çµæã«ãããšãããã¯HTMLã³ãŒããæå°åããããã®æ¢åã®æé©ãªããŒã«ã§ãã
â13ã CSSã®çž®å°
ãµãŒããŒããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããHTMLã³ãŒããšç»åãçž®å°ããã³æé©åããã®ã§ãCSSçž®å°ã®åé¡ãæ€èšãã䟡å€ããããŸãã ãã®åé¡ã¯ãã³ãã³ãã©ã€ã³ãšJSã³ãŒãã®äž¡æ¹ãã䜿çšã§ããéåžžã«é«éãªclean-cssã¢ãžã¥ãŒã«ã«ãã£ãŠè§£æ±ºã§ããŸãã IEã®å€ãããŒãžã§ã³ã§çæãããçž®å°ãããCSSã§äœæ¥ã§ããããã«ããããŸããŸãªäºæã¢ãŒãã ãã§ãªãããœãŒã¹ãããããµããŒãããŠããŸãã
â14ã JavaScriptã®çž®å°
UglifyJS2ã¢ãžã¥ãŒã«ã¯JavaScriptã³ãŒããçž®å°ã§ããã ãã§ãªãããã®åé¡ãéåžžã«ãã解決ããŸã
人æ°ã®ããUglifyJS2ã¢ãžã¥ãŒã«ã¯å€ãã®å ŽåãJSã³ãŒããçž®å°ããããã«äœ¿çšãããŸããããã®ã³ãŒã解ææ©èœã®ãããã§ãååãšããŠãJavaScriptããã°ã©ã ã§ã®ããã¹ãåŠçã«é¢é£ããåºç¯ãªã¿ã¹ã¯ã®è§£æ±ºã«äœ¿çšã§ããŸãã ãã®ã¢ãžã¥ãŒã«ã¯ãJavaScriptã³ãŒããæœè±¡æ§æããªãŒïŒããã¯ã³ãŒããè¡šããªããžã§ã¯ãã¢ãã«ïŒã«å€æãããã®ããªãŒãèµ°æ»ããããã®ããŒã«ãæäŸããŸãã ãã®ã¢ãžã¥ãŒã«ã¯ãç¬èªã®JavaScriptãªããã£ãã€ã¶ãŒã®äœæãæ€èšããŠãã人ã«ãé©ããŠããŸãã
â15ã SVGãããã¡ã€
SVGããŒã¿ãçž®å°ãããããã¯ã«ã€ããŠã¯ããã®ã»ã¯ã·ã§ã³ã®æåŸã§èª¬æããŸãããããã§èª¬æãããã¹ãŠãšåããããéèŠã§ãã éå»æ°å¹Žéã§ããã®åœ¢åŒã®åŸ©æŽ»ãèŠãããŸãã åé¡ã¯ããã©ãŠã¶ãŒãå®å šã«ãµããŒãããŠããããšãšããããæäœããããã®äŸ¿å©ãªããŒã«ãããããšã§ãã æ®å¿µãªãããç·šéè ãçæããSVGããŒã¿ã«ã¯ãã³ã¡ã³ããã¡ã¿ããŒã¿ãªã©ã®åé·ãŸãã¯ç¡çšãªæ å ±ãå«ãŸããŠããããšããããããŸãã
SVGããŒã¿ããäžèŠãªããŒã¿ããã¹ãŠåé€ããã«ã¯ã SVGOã¢ãžã¥ãŒã«ã䜿çšã§ããŸãã ãã®ã¢ãžã¥ãŒã«ã¯ãã©ã°ã€ã³ã·ã¹ãã ããµããŒãããŸããããã§ã¯ãã»ãŒãã¹ãŠã®æé©åãåå¥ã®ãã©ã°ã€ã³ãšããŠæ瀺ãããŸãã çž®å°çšã«èšèšãããä»ã®ã¢ãžã¥ãŒã«ãšåæ§ã«ãSVGOã¯ã³ãã³ãã©ã€ã³ãšJSã³ãŒãã®äž¡æ¹ãã䜿çšã§ããŸãã
å ¬çäºæ¥
â16ã ãã®ã³ã°
éçºãšå®çšŒåã®äž¡æ¹ã§è€éãªWebã¢ããªã±ãŒã·ã§ã³ã䜿çšããå Žåããããã®ã¢ããªã±ãŒã·ã§ã³ã®åäœäžã«çºçãããšã©ãŒãèŠã€ããããã«ãåªãããã®ã³ã°ã©ã€ãã©ãªãéåžžã«åœ¹ç«ã¡ãŸãã ãã®åéã§ã¯ãŠã£ã³ã¹ãã³ã¢ãžã¥ãŒã«ãéåžžã«äººæ°ããããŸãã ããŒã¿ãæäœããããŸããŸãªæ¹æ³ããµããŒãããŠããŸããããšãã°ãã³ã³ãœãŒã«ã«æ å ±ãåºåãããããã¡ã€ã«ã«æžã蟌ãã ããããŒã¿ããŒã¹ïŒããšãã°ãCouchDBãMongoDBãRedisïŒã«ä¿åããããããã«åŠçããããã«HTTPçµç±ã§ã¢ã¯ã»ã¹ãããããããšãã§ããŸãã
â17ã ãããŒããŒã¿ã®äœæ
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®éçºãŸãã¯ãã¹ãäžã«ãé»åã¡ãŒã«ã¢ãã¬ã¹ããŠãŒã¶ãŒåãèªå® ã®äœæãé»è©±çªå·ãªã©ã®ç¹å®ã®æ¡ä»¶ä»ãããŒã¿ãå¿ èŠã«ãªãããšããããããŸãã faker.jsã©ã€ãã©ãªãŒã¯ããã®ãããªåé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸãã ãµãŒããŒïŒNode.jsã®ã¢ãžã¥ãŒã«ãšããŠïŒããã³ã¯ã©ã€ã¢ã³ãã§äœ¿çšã§ããŸãã ãã®ããŒã«ã¯ããããŒããŒã¿ãäœæããããã®äžé£ã®ã¡ãœãããæäŸããŸãã ãŠãŒã¶ãŒåãå¿ èŠã§ããïŒ
faker.internet.userName()
ã¡ãœãããåŒã³åºããŸã-ã©ã³ãã ã«çæãããååã¯èªç±ã«äœ¿çšã§ããŸãã äŒç€Ÿåãå¿ èŠã§ããïŒ
faker.company.companyName()
ã¡ãœãããåç §ããŠãã ããã å®éãfaker.jsã¯ãã®çš®é¡ã®ã»ãŒãã¹ãŠã®çš®é¡ã®ããŒã¿ã®äœæã«åœ¹ç«ã¡ãŸãã
â18ã ã¡ãŒã«ãéä¿¡ãã
Nodemailerã¯SSL / STARTTLSããµããŒããããã¬ãŒã³ããã¹ããHTMLãç»åãå«ãã¡ãã»ãŒãžãéä¿¡ã§ããŸã
Webãµã€ãã®éçºäžãå€ãã®å Žåãããã°ã©ã ã§é»åã¡ãŒã«ãéä¿¡ããå¿ èŠããããŸãã ããã¯ãããšãã°ããŠãŒã¶ãŒã®ç»é²ç¢ºèªãéä¿¡ããããéèŠãªã€ãã³ãããã¥ãŒã¹ã«é¢ããéç¥ãéä¿¡ãããããããã«å¿ èŠã§ãã å®éãã¡ãŒã«ãæäœããèœåãå¿ èŠãªç¶æ³ã¯æ°å€ããããŸãã
æšæºã®Node.js APIã«ã¯ãã¡ãŒã«ãéä¿¡ããæ©èœããããŸããã ãã®åé¡ã¯ã Nodemailerã¢ãžã¥ãŒã«ã䜿çšããŠè§£æ±ºã§ããŸãã ãã¬ãŒã³ããã¹ããHTMLãç»åãå«ãã¬ã¿ãŒã®éä¿¡ããµããŒãããæãéèŠãªããšã«ã¯ãå®å šãªSSL / STARTTLSéä¿¡ãããã³ã«ããµããŒãããŸãã
â19ã REST APIãäœæãã
RESTã¯ãWebãµãŒãã¹ã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ã®äœæã«äœ¿çšãããäºå®äžã®æšæºã§ãã Expressã®ãããªãã¬ãŒã ã¯ãã®ãããªãµãŒãã¹ã®äœæã«åœ¹ç«ã¡ãŸãããå€ãã®å Žåããè² è·æãã«ãéçºè ã¯ãã³ãã¬ãŒããšã¬ã³ããªã³ã°ã·ã¹ãã ãæäœããããã®ããŒã«ãååŸããŸãã ãã®ç¶æ³ã§ã¯ãREST-APIã®éçºãšãã¹ãã®ã¿ã«çŠç¹ãåœãŠãrestifyã¢ãžã¥ãŒã«ã確èªããå¿ èŠããããŸãã ãã®APIã¯ãExpressãã¬ãŒã ã¯ãŒã¯ã®åºç€ã§ããConnectããã«ãŠã§ã¢ã«éåžžã«äŒŒãŠããŸãããéçºè ã«HTTPçžäºäœçšãããé«åºŠã«å¶åŸ¡ããDTraceããµããŒãããŠã¢ããªã±ãŒã·ã§ã³ã®åé¡ããªã¢ã«ã¿ã€ã ã§æ€åºããŸãã
â20ã ã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã®äœæ
Node.jsããŒã«ã«ãã£ãŠäœæãããããŸããŸãªåé¡ã解決ããããã«èšèšãããèšå€§ãªæ°ã®ã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ããããŸãïŒããšãã°ãããã¯äžèšã®ããŒã¿ãçž®å°ããã³æé©åããããŒã«ã«é©çšãããŸãïŒã ç¬èªã®ã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã®äœæãæ€èšããŠããå Žåã¯ã Commander.jsããã±ãŒãžã«æ³šæããŠãã ããã ãã®äŸ¿å©ãªããŒã«ã䜿çšãããšãã³ãã³ãããªãã·ã§ã³ããšã€ãªã¢ã¹ãåç §è³æãªã©ããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªåŽé¢ã説æã§ããŸãã ããã«ãããã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã®äœæããã»ã¹ãå€§å¹ ã«ç°¡çŽ åãããŸãã
ãŸãšã
å®éããã®èšäºã§ã¯ãNode.jsçšã«äœæãããæçšãªããŒã«ã®ããäžéšã®ã¿ãæ€èšããŸããã JavaScriptã¯çŸåšéåžžã«äººæ°ããããæ°ããnpmã¢ãžã¥ãŒã«ã¯æ¯é±æåéã衚瀺ãããŸãã èªåã§äœãé¢çœããã®ãèŠã€ãããå Žåã¯ã npmããŒã ããŒãžãèŠãŠãæé«ã®ã³ãã¥ããã£ã®è©äŸ¡ãåããŠãããããžã§ã¯ãã«æ³šæãæãã人æ°ã®ãããªããžããªã®ã»ã¯ã·ã§ã³ã«ããGitHubãèŠãŠãã ããã
芪æãªãèªè ïŒ Node.jsãã©ãããã©ãŒã ã®éçºã«å¿ããå Žåã¯ããããããæ°ã«å ¥ãã®ã¢ãžã¥ãŒã«ã®ãªã¹ãããããŸãã ãããã«ã€ããŠæããŠãã ããã