0.0.xã¢ã«ãã¡ãªãªãŒã¹ã®é·ãæååã®åŸãæåã®ããŒã¿çã§ãããããã³ãªãŒ0.1.0ããªãªãŒã¹ããŸããã
ç®æ¬¡ïŒ
- ç°¡åãªäŸ
- åæ©/ç¹åŸŽ
- 建ç¯
- èå°è£/äžè¬çãªå€èŠ³
- ä»ã®ãã«ãã·ã¹ãã ãšã®æ¯èŒ
- 次ã¯ïŒ
1.ç°¡åãªäŸ
以äžã¯ããã«ãã®æ§æãã¡ã€ã«ã®äŸïŒBrocfile.jsïŒã§ãã ã³ã¡ã³ãã¯æå³çã«çç¥ãããŠããŸããæ§æã説æããããã«ã®ã¿äŸã瀺ããŸãã
module.exports = function (broccoli) { var filterCoffeeScript = require('broccoli-coffee'); var compileES6 = require('broccoli-es6-concatenator'); var sourceTree = broccoli.makeTree('lib'); sourceTree = filterCoffeeScript(sourceTree); var appJs = compileES6(sourceTree, { ... outputFile: '/assets/app.js' }); var publicFiles = broccoli.makeTree('public'); return [appJs, publicFiles]; };
broccoli serve
ãå®è¡ããŠããœãŒã¹ãã¡ã€ã«ã®å€æŽã®è¿œè·¡ãéå§ããŸãã ç£èŠå¯Ÿè±¡ã®ãªã¹ããããã¡ã€ã«ãå€æŽãããã³ã«ããããã³ãªãŒã¯ã¿ãŒã²ãããã£ã¬ã¯ããªã§èªåçã«åã³ã³ãã€ã«ããŸãã ãããã³ãªãŒã¯å¯èœãªéãè¿ éã«æ©èœããããã«æé©åãããŠãããããé£ç¶ããã¢ã»ã³ããªéã§äžæåæ¢ããããšã¯ãããŸããã
broccoli build dist
ãå®è¡ããŠ1åéãã®ãã«ãããã«ãããçµæãdistãã©ã«ããŒã«å ¥ããŸãã
ãã詳现ãªäŸã«ã€ããŠã¯ã broccoli-sample-appãã芧ãã ãã
2.åæ©/ç¹åŸŽ
2.1ã ã¯ã€ãã¯ãªãã«ã
Broccolièšèšã®äž»ãªçŠç¹ã¯ãé«éã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªã®å®è£ ã§ããã çç±ã¯æ¬¡ã®ãšããã§ãã
ããšãã°ãGruntã䜿çšããŠãCoffeeScriptãSASSãããã³ä»ã®ããã€ãã®ããªããã»ããµã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸãã äœããéçºããŠãããšãã¯ããã«ãã·ã¹ãã ãåžžã«èµ·åããã«ããã¡ã€ã«ãç·šéããŠããã«ãã©ãŠã¶ãŒã§çµæã確èªããå¿ èŠããããŸãã ãã®ããããã®ç®çã®ããã«
grunt watch
ã䜿çšããŸãããã¢ããªã±ãŒã·ã§ã³ã倧ãããªããšãã¢ã»ã³ããªã¯ãŸããŸãé ããªããŸãã ãããžã§ã¯ãã§æ°ãæäœæ¥ããåŸããç·šé-æŽæ°ããµã€ã¯ã«ã¯ãç·šé-åŸ æ©-10-ç§-æŽæ°ãã«å€ãããŸãã
ãããã£ãŠãã¢ã»ã³ããªãé«éåããããã«ãå€æŽããããã¡ã€ã«ã®ã¿ãåã¢ã»ã³ãã«ããããšããŠããŸãã ããã¯ããªãé£ããã§ã åºåã®1ã€ã®ãã¡ã€ã«ãå ¥åã®è€æ°ã®ãã¡ã€ã«ã«äŸåããããšããããŸãã å€æŽãããäŸåé¢ä¿ã«åºã¥ããŠæ£ãããã¡ã€ã«ãåæ§ç¯ããã«ã¯ãã«ãŒã«ãæåã§æ§æããå¿ èŠããããŸãã ããããGruntã¯ãã®ã¿ã¹ã¯ã«ç°¡åã«å¯ŸåŠã§ããããã«ã¯èšèšãããŠããªããããç¬èªã®ã«ãŒã«ã»ãããäœæããåŸã§ããå¿ èŠãªãã¡ã€ã«ãåæ§ç¯ããããã©ããã¯ããããŸããã æã«ã¯ãå¿ èŠã®ãªããšãã«ãã¡ã€ã«ãåã³ã³ãã€ã«ããŸãïŒããã«ããã¢ã»ã³ããªã®é床ãäœäžããŸãïŒããããã«æªãããšã«ãå¿ èŠãªãšãã«ãã¡ã€ã«ãåã³ã³ãã€ã«ããŸããïŒãã«ãã®ä¿¡é Œæ§ãäœäžããŸãïŒã
broccoli serve
ã
broccoli serve
å®è¡ããã ãã§ãã©ã®ãã¡ã€ã«ãç£èŠããå¿ èŠãããããç解ããå¿ èŠãªãã¡ã€ã«ã®ã¿ãåæ§ç¯ããŸãã
çµæãšããŠãããã¯ããããžã§ã¯ãã§äœ¿çšããããã¡ã€ã«ã®æ°ã«é¢ä¿ãªããååãšããŠåæ§ç¯ã«ã¯OïŒ1ïŒã®äžå®ã®å®è¡æéãå¿ èŠã§ããããšãæå³ããŸãã åžžã«1ã€ã ãã«ãªããŸãã å žåçãªã¿ã¹ã¯ã®ã»ããã䜿çšããŠãã¢ã»ã³ããªããšã«200ããªç§ã®çµæãç®æããŠããŸãã ãã®ãããªé 延æéã¯äººéã®è³ã§ã¯ã»ãšãã©ç¬æã«æããã®ã§ãç§ã«ãšã£ãŠã¯çµæã¯0.5ç§ãŸã§èš±å®¹ãããŸãã
2.2ã ãã©ã°ã€ã³ãã§ãŒã³
å¥ã®éèŠãªã¿ã¹ã¯ã¯ããã©ã°ã€ã³åŒã³åºããäœæããæ©èœã§ãã äŸãèŠãŠã¿ãŸãããããããã³ãªãŒã䜿çšãããšã次ã®ãããã¡ã¯ãã§CoffeeScriptãã³ã³ãã€ã«ã§ããŸãã
var tree = broccoli.makeTree('lib') tree = compileCoffeeScript(tree) tree = uglifyJS(tree) return tree
Gruntã䜿çšããŠãCoffeeScriptåºåãä¿åããããã«ãäžæãã£ã¬ã¯ããªïŒæåŸã®ãã£ã¬ã¯ããªä»¥å€ïŒãäœæããå¿ èŠããããŸãã ããããã¹ãŠã®æäœã®çµæãGruntfileã¯éåžžéåžžã«å€§ããªãµã€ãºã«æé·ããŸãã ãããã³ãªãŒã§ã¯ãããããã¢ã¯ãã£ããã£ã¯ãã¹ãŠèªåçã«è§£æ±ºãããŸãã
3.ã¢ãŒããã¯ãã£
ç¹ã«èå³ããã人ã®ããã«ããããã³ãªãŒã®å»ºç¯ã«ã€ããŠæããŠãã ããã
3.1ã ãã¡ã€ã«ã§ã¯ãªãããªãŒ
æœè±¡åã¬ãã«ãšããŠããœãŒã¹ããŒã¿ãšåºåããŒã¿ãèšè¿°ããããã«ãã¡ã€ã«ã¯äœ¿çšãããŸããããããªãŒïŒãã¡ã€ã«ãšãµããã£ã¬ã¯ããªãæã€ãã£ã¬ã¯ããªïŒã䜿çšãããŸãã ããã¡ã€ã«ããå ¥åãã¡ã€ã«ãžã®åºåãã§ã¯ãªãããããªãŒããå ¥åãžã®ããªãŒããåºåãžãããããŸãã
Broccoliãåå¥ã®ãã¡ã€ã«ã§åäœããå Žåãåé¡ãªãCoffeeScriptãã³ã³ãã€ã«ã§ããŸãïŒãã¡ã€ã«ã¯1察1ã«åŸã£ãŠã³ã³ãã€ã«ãããããïŒããã ããããã«ãããSASSãªã©ã®ããªããã»ããµã䜿çšããŠAPIãšå¯Ÿè©±ãããšãã«åé¡ãçºçããŸã
@import
ã䜿çšãããšã1ïŒã§nåã®ãã¡ã€ã«ãã³ã³ãã€ã«ã§ããŸãã
ãã ãããããã³ãªãŒã¯ãSASSïŒnïŒ1ïŒãªã©ã®ããªããã»ããµãŒã®åé¡ã解決ããŠãåé¡ãçºçããªãããã«èšèšãããŠãããCoffeeScriptïŒ1ïŒ1ïŒãªã©ã®ããªããã»ããµãŒã®ã¿ã¹ã¯ã¯nïŒ1ã®ç¹æ®ãªã±ãŒã¹ãšããŠç°¡åã«è§£æ±ºãããŸãã äžè¬ã«ããã®ãããªïŒ1ïŒ1ïŒå€æã«ã¯
Filter
ã¯ã©ã¹ããããŸããããã«ããã決å®ã§ãããã䜿çšããããšãã§ããéãç°¡åã«ãªããŸãã
3.2ã ãã©ã°ã€ã³ã¯æ°ããããªãŒãè¿ãã ãã§ã
ãŸãããããã³ãªãŒã2ã€ã®ããªããã£ãã§èšèšããŸããã
tree
ïŒä»¥äžãããªãŒã
transform
ãŸãïŒã¯ããã¡ã€ã«ãš
transform
ïŒä»¥äžãå€æã
transform
ãŸãïŒãæã€ãã£ã¬ã¯ããªãè¡šããŸãã
ããã¯ãããªãŒ1ïŒ1ãå€æããããšãæå³ããŸãã é©ãã¹ãããšã«ãããã¯åžžã«è¯ãæœè±¡åã§ã¯ãããŸããã ããšãã°ãSASSã«ã¯ã
@import
ãã£ã¬ã¯ãã£ãã䜿çšããŠãã¡ã€ã«ãæ€çŽ¢ããããã«äœ¿çšããããããŠã³ããŒããã¹ãããããŸãã r.jsã®ãããªé£çµåã¯ãåæ§ã®åçã§æ©èœããŸããã€ã³ããŒããããã¢ãžã¥ãŒã«ãæ€çŽ¢ããããã¹ããªãã·ã§ã³ããããŸãã ãããã®ãã¹ãè¡šãæè¯ã®æ¹æ³ã¯ãããªãŒã§æ§æãããã»ããïŒããŒã¿æ§é ïŒã䜿çšããããšã§ãã
ã芧ã®ãšãããçŸå®ã®äžçã§ã¯ãå€ãã®ã³ã³ãã€ã©/ããªããã»ããµãnåã®ãããªãŒãã1ã€ã«ãŸãšããŠããŸãã ãã®ã¢ãããŒãã«åŸãæãç°¡åãªæ¹æ³ã¯ããã©ã°ã€ã³ãå ¥åãããªãŒãèªäœãåŠçã§ããããã«ããããšã§ããããã«ãããå ¥åã«å¯ŸããŠ0ã1ããŸãã¯nåã®ãããªãŒããåãå ¥ããããšãã§ããŸãã
ãããããã©ã°ã€ã³èªäœãå ¥åããªãŒãåŠçããããšã決å®ããã®ã§ãã³ã³ãã€ã©ãäžæ¬¡ãªããžã§ã¯ããšããŠç¥ãå¿ èŠã¯ãªããªããŸããã ãã©ã°ã€ã³ã¯ã0ãnåã®ãœãŒã¹ããªãŒïŒããã³å Žåã«ãã£ãŠã¯äžéšã®èšå®ïŒã䜿çšããŠãæ°ããããªãŒãè¡šããªããžã§ã¯ããè¿ãé¢æ°ããšã¯ã¹ããŒãããã ãã§ãã äŸïŒ
broccoli.makeTree('lib') // => a tree compileCoffeeScript(tree) // => a tree compileSass(tree, { loadPaths: [moreTrees, ...] }) // => a tree
3.3ã ãã¡ã€ã«ã·ã¹ãã ã¯APIã§ã
Gruntã¯ãã©ã°ã€ã³ã®ããã§ãŒã³ãã®äœ¿çšããµããŒãããŠããªããããäžéãã«ãçµæã®ããã«äžæãã£ã¬ã¯ããªã䜿çšããå¿ èŠããããããæ§æã倧ãããªããé »ç¹ã«ãµããŒããããããšã«æ³šæããŠãã ããã
ãããåé¿ããããã«æåã«æãæµ®ãã¶ã®ã¯ãã¡ã¢ãªå ã®ãã¡ã€ã«ã·ã¹ãã ã®è¡šçŸãäœæããããšã§ããããã§ã¯ãããªãŒãã¹ã¬ããã®ã³ã¬ã¯ã·ã§ã³ãšããŠè¡šç€ºãããŸãã Gulpã¯ãŸãã«ãããè¡ããŸãã ãŸãããã®ã¢ãããŒããBroccoliã®åæããŒãžã§ã³ã«å®è£ ããããšããŸããããã³ãŒããéåžžã«è€éã«ãªã£ãããšãããããŸãããã¹ã¬ããã§ã¯ããã©ã°ã€ã³ããã¥ãŒãšãããããã¯ã远跡ããå¿ èŠããããŸããã ãŸããã¹ããªãŒã ãšãã¹ã«ã€ããŠã¯ãæçµå€æŽæå»ããã¡ã€ã«ãµã€ãºãªã©ã®å±æ§ãå¿ èŠã«ãªãå ŽåããããŸãã ãŸãã¯ãããšãã°ããã¡ã€ã«ãå床èªã¿åããäœããæ€çŽ¢ããæ©èœãã¡ã¢ãªå ã®ãã¡ã€ã«ã衚瀺ããæ©èœãå¿ èŠãªå ŽåããŸãã¯æçµçã«å ¥åããªãŒã端æ«ãä»ããŠå¥ã®ããã»ã¹ã«è»¢éããå¿ èŠãããå Žåãã¹ã¬ãããæäœããããã®APIã¯ã§ããŸãããããŠãæåã«ããªãŒå šäœããã¡ã€ã«ã·ã¹ãã ã«æžã蟌ãå¿ èŠããããŸãã è€éãããïŒ
ãããããã¡ã€ã«ã·ã¹ãã ã®ãã¹ãŠã®æ©èœãã³ããŒããã¡ã¢ãªããããªãŒãåŒãåºããŠç©çè¡šçŸã«è¿œãè¶ããããããã¡ã¢ãªã«æ»ããåã³...ã¹ããªãŒã ã®ä»£ããã«ãã¡ã€ã«ã·ã¹ãã ã䜿çšããªãã®ã¯ãªãã§ããïŒ
fs
Node.JSã¢ãžã¥ãŒã«ã¯ããã¡ã€ã«ã·ã¹ãã ã«å¿ èŠãªAPIãæ¢ã«æäŸããŠããŸãã
å¯äžã®äžäŸ¿ãªç¹ã¯ããèå°è£ãã§äžæãã£ã¬ã¯ããªãæäœããå¿ èŠãããããšã§ãããã®åŸãæŽçããå¿ èŠããããŸãã ããããå®éã«ã¯ãèŠããã»ã©é£ããã¯ãããŸããã
人ã ã¯ããã£ã¹ã¯ãžã®æžã蟌ã¿ãã¡ã¢ãªãžã®æžã蟌ã¿ãããé ããšå¿é ããããšããããŸãã ãã ããããŒããã©ã€ãã䜿çšããŠããææ°ã®SSDã®ã¹ã«ãŒãããã¯éåžžã«é«ããªããããCPUã®é床ãšæ¯èŒã§ããããããªãŒããŒãããã¯ãããã§ãã
3.4ã éšåçãªåæ§ç¯ã®ä»£ããã«ãã£ãã·ã¥
ã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã®åé¡ã解決ããããšãããšããã©ã®ãã¡ã€ã«ããªãã«ãããå¿ èŠããããããã§ãã¯ããŠãBroccoliããœãŒã¹ãã¡ã€ã«ã®ãµãã»ããã«å¯ŸããŠã®ã¿ãã®ã€ãã³ããçºçãããæ¹æ³ãèæ¡ããããšããŸããã ã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã§ã¯ãnïŒ1ã®é¢ä¿ã«ééããããšãå€ããããçµæãã©ã®ãœãŒã¹ãã¡ã€ã«ã«äŸåããããç¥ãå¿ èŠããããŸãã éšåçãªã¢ã»ã³ããªã¯ãåŸæ¥ã®Makeã¢ãããŒãã§ãããRailsã¢ã»ãããã€ãã©ã€ã³ã§ããRake :: PipelineãŸãã¯Brunchã§ãããç§ã¯ããããäžå¿ èŠãªå°é£ã§ãããšå人çã«æ±ºããŸããã
ãããã³ãªãŒã®ã¢ãããŒãã¯ã¯ããã«ç°¡åã§ãããã¹ãŠã®ãã©ã°ã€ã³ã«åºåããã£ãã·ã¥ããããã«äŸé ŒããŸãã ãããžã§ã¯ããå®å šã«åæ§ç¯ãããšãããŸãã¯åã ã®ãã©ã°ã€ã³ãåèµ·åãããšããã»ãšãã©ã®æ å ±ã¯ãã©ã°ã€ã³èªäœã®ãã£ãã·ã¥ããååŸããããããæéãããããŸãã
åœåããããã³ãªãŒã¯ããã€ãã®ãã£ãã·ã³ã°ããªããã£ããæäŸããŠããŸããããåŸã«ã«ãŒãã«APIããé€å€ããããšã決å®ãããŸããã ããã§ããã£ãã·ã¥ã®å®è£ ã劚ããªãã¢ãŒããã¯ãã£ãæäŸããããšã«éå®ããŸãã
CoffeeScriptãªã©ã1ïŒ1ããããã³ã°ãããã©ã°ã€ã³ã®å Žåããã©ã°ã€ã³ã³ãŒããéåžžã«ã·ã³ãã«ãªãŸãŸã«ããŠãäžè¬çãªãã£ãã·ã¥ã¡ã«ããºã ïŒbroccoli-filterããã±ãŒãžã§æäŸïŒã䜿çšã§ããŸãã SASSãªã©ã®nïŒ1ã®ãã©ã°ã€ã³ã§ã¯ããã£ãã·ã¥ãããæ éã«æ±ãå¿ èŠãããããããã£ãã·ã¥ãæäœããã«ã¯ç¹å¥ãªããžãã¯ãå¿ èŠã§ãã å°æ¥çã«ã¯ããã£ãã·ã¥ããžãã¯ã®äžè¬çãªéšåãåé¢ã§ãããšèããŠããŸãã
3.5ã å¹³è¡åºŠãªã
ç§ãã¡å šå¡ãé ããã«ãã«èŠããã§ããå Žåãå€åããªãã¯äžŠè¡ããŠã¿ã¹ã¯ãå®äºããããšããã¹ãã§ããïŒ
ç§ã®çãã¯ãããããã§ããã¿ã¹ã¯ã䞊è¡ããŠå®è¡ãããšããã©ã°ã€ã³å ã®é åºã«åé¡ãçºçããå¯èœæ§ããããŸããããããã€ã¡ã³ããŸã§æ°ä»ããªãå ŽåããããŸãã ãããã¯ææªã®ãã°ã§ããããã䞊åèµ·åããé¢ãããã¹ãŠã®ã«ããŽãªã®ãã°ãã身ãå®ããŸãã
äžæ¹ãã¢ããã«ã®æ³åã«ããã䞊åèµ·åã䜿çšãããšãã«åªããããã©ãŒãã³ã¹ãåŸãããšã¯ã§ããŸããã ç°¡åãªäŸãæããŸããããã¢ã»ã³ããªã«ã¯16ç§ããããŸãã 50ïŒ ã䞊è¡ããŠå®è¡ã§ããæ®ãã¯ãã¥ãŒã®é ã«å®è¡ããå¿ èŠãããããšãæ³åããŠãã ããïŒa la coffee-> concate-> uglifyïŒã ãã®ãããªã¢ã»ã³ããªãã¯ã¢ããã³ã¢ãã·ã³ã§å®è¡ãããšãã¢ã»ã³ããªã«ã¯10ç§ããããŸããåæéšåã§ã¯8ç§ã䞊åéšåã§ã¯8/4 = 2ç§ã§ãã ãã®çµæããã«ãæéã¯ãŸã 10ç§ã§ãããããã¯çç£æ§ã®+ 40ïŒ ã«éããŸããã
æãé¢å¿ã®ããã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã®å Žåããã£ãã·ã³ã°ã¯ã¿ã¹ã¯ã䞊è¡ããŠå®è¡ããããšã®å©ç¹ã®ã»ãšãã©ãæå°åãããããããã©ãŒãã³ã¹ã¯ã»ãšãã©å€±ãããŸããã
ãã®ãããã¢ã»ã³ããªã®äžŠååãå®è£ ããããšã¯ãã®å©ç¹ã«å€ããªããšèããŠããŸãã ååãšããŠããã«ãããã»ã¹ã®äžéšã®ã¿ã¹ã¯ã䞊ååããæ©èœãæäŸããBroccoliã®ãã©ã°ã€ã³ãäœæããããšãçŠæ¢ãããã®ã¯ãããŸããã ãã ãããããã³ãªãŒããªããã£ãã¯ã決å®è«çãªã·ãŒã±ã³ã¹ã§å®è¡ããããã«ãã©ã°ã€ã³ãæã䟿å©ã«èšèšã§ããããã«ãèšèšãããŠããŸãã
4.èå°è£/äžè¬çãªå€èŠ³
è¯ããã«ãã·ã¹ãã ãäœæãããšããç§ã®æ±ºå®ã¯ã2ã€ã®çç±ã«åºã¥ããŠããŸãã
æåã®çç±ã¯ãã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã«ãã£ãŠããã©ãŒãã³ã¹ãåäžããããšã§ãã
äžè¬ã«ãéçºè ã®çç£æ§ã¯ã䜿çšããã©ã€ãã©ãªãšããŒã«ã®å質ã«ãã£ãŠæ±ºãŸããšèããŠããŸãã ãç·šéãããŒãžã®åèªã¿èŸŒã¿ããšãããµã€ã¯ã«ã¯æ¯æ¥æ°çŸåç¹°ãè¿ãããŸãããããããããããã£ãŒãããã¯ãåŸãäž»ãªæ¹æ³ã§ãã ãŸããããŒã«ã®ããã©ãŒãã³ã¹ãåäžãããã«ã¯ããã®ãµã€ã¯ã«ãã§ããã ãéãããå¿ èŠããããŸãã
2çªç®ã®çç±ã¯ãããã³ããšã³ãããã±ãŒãžã®ãšã³ã·ã¹ãã ããµããŒãããããšã«ãããŸãã
Bowerãšã¢ãžã¥ã©ãŒES6ã·ã¹ãã ã¯åªãããšã³ã·ã¹ãã ã®æ§ç¯ã«åœ¹ç«ã€ãšèããŠããŸããããã®äžã«æ§ç¯ã·ã¹ãã ãæ§ç¯ãããŸã§ã¯Bowerã ãã§ã¯åœ¹ã«ç«ã¡ãŸããã Bowerããããžã§ã¯ãã®ãã¹ãŠã®äŸåé¢ä¿ãïŒååž°çã«ãäŸåé¢ä¿ãšå ±ã«ïŒãã¡ã€ã«ã·ã¹ãã ã«ããŒãã§ããããã«ãã絶察ã«èªç±ãªããŒã«ã§ããçç±ã§ã-ããã§ã§ããããšã¯ããã ãã§ãã äžæ¹ããããã³ãªãŒã¯ãæ£ç¢ºã«ãã®ããã·ã³ã°ãªã³ã¯ã«ãªãããšãç®æããŠããŸã-ãããåäœããã¢ã»ã³ããªã·ã¹ãã ã®åœ¢ã®ã¢ããªã³ã
ã¡ãªã¿ã«ããããã³ãªãŒèªäœã¯BowerãES6ã¢ãžã¥ãŒã«ãšã¯äžåæ¥ç¶ãããŠããŸãã-奜ããªããã«äœ¿çšã§ããŸãã ïŒä»ã®ãã³ãã«ãããšãã°npm + browserifyããŸãã¯npm + r.jsãããããšã¯ç¥ã£ãŠããŸããïŒæ¬¡ã®æçš¿ã®1ã€ã§ããããåãäžããŸãã
5.ä»ã®ãã«ãã·ã¹ãã ãšã®æ¯èŒ
ã»ãŒçŽåŸããŠããä»ã®ãã«ãã·ã¹ãã ããããã³ãªãŒãšæ¯èŒããŠã©ã®ããã«åäœããã®ãçåã«æã£ãŠããå Žåã¯ã次ã®ããããã䜿çšãã代ããã«ãããã³ãªãŒãäœæããçç±ã説æããŸãã
Gruntã¯ã¿ã¹ã¯ãèµ·åããããã®ããŒã«ã§ããããã«ãã·ã¹ãã ãšããŠäœçœ®ä»ããããããšã¯ãããŸããã ãã«ãã·ã¹ãã ãšããŠäœ¿çšããããšãããšãããã«å€±æããŸãã ãã§ãŒã³ã³ãŒã«ïŒæ§æïŒã䜿çšããæ©èœã¯æäŸãããŸããããŸããäžæãã£ã¬ã¯ããªã®åŠçã«ããã«é£œããŠããŸããŸãããã®éãæ§æãã¡ã€ã«ã¯ã©ãã©ã倧ãããªããŸãã ãŸããä¿¡é Œã§ããã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªãæäŸã§ããªããããç¹°ãè¿ãã¢ã»ã³ããªãé ããªã£ãããä¿¡é Œæ§ãäœããªã£ããããŸããäžèšã®ãã¯ã€ãã¯ãªãã«ãããåç §ããŠãã ããã
Gruntã¯ãã¿ã¹ã¯ãèµ·åããããã®ããŒã«ãšããŠäœæãããŸãããããã«ããããã©ãããã©ãŒã ã®ã·ã§ã«ã¹ã¯ãªããã®æ©èœïŒã¢ããªã±ãŒã·ã§ã³ã®ã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããã€ã¡ã³ããªã©ïŒãååŸã§ããŸãã å°æ¥ãBroccoliã¯Gruntã®ãã©ã°ã€ã³ãšããŠå©çšã§ããããã«ãªããããGruntfileããçŽæ¥åŒã³åºãããšãã§ããŸãã
Gulpã¯é 次åŒã³åºããã©ã°ã€ã³ã®åé¡ã解決ããããšããŠããŸãããç§ã«é¢ããŠã¯ãã¢ãŒããã¯ãã£ã®ç¹å®ã®ãšã©ãŒã«èŠããã§ããŸãã圌ã®ä»äºã¯ãã¹ãŠãããªãŒããäžå¿ã«å±éãããŠããã«ããããããããã¡ã€ã«ã®ã·ãŒã±ã³ã¹ã«ãã£ãŠå®è£ ãããŠããŸãã ããã¯ã1ã€ã®ãœãŒã¹ãã¡ã€ã«ã1ã€ã®å®å ãã¡ã€ã«ã«å€æãããå Žåã«æé©ã§ãã ãããããã©ã°ã€ã³ã
import
ãã£ã¬ã¯ãã£ãã«åŸãå¿ èŠãããããããé çªã«ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããå¿ èŠãããå Žåãäœæ¥ã¯è€éã«ãªããŸãã çŸåšã
import
ãã£ã¬ã¯ãã£ãã䜿çšãããã©ã°ã€ã³ã¯ãã¢ã»ã³ããªãäžæåæ¢ããå¿ èŠãªãã¡ã€ã«ããã¡ã€ã«ã·ã¹ãã ããçŽæ¥èªã¿åããŸãã å°æ¥ããã¹ãŠã®ã¹ã¬ãããä»®æ³ãã¡ã€ã«ã·ã¹ãã äžã§å®è¡ããããããã³ã³ãã€ã©ã«æž¡ãããšãã§ããã©ã€ãã©ãªã䜿çšããããšèããŸããã ããããã¹ãŠã®è€éãã¯ããã«ãã·ã¹ãã ãšã³ã³ãã€ã©ã®å®å šãªäžäžèŽã®çç¶ã ãšæããŸãã ã»ã¯ã·ã§ã³ããã¡ã€ã«ã§ã¯ãªãããªãŒããããäžåºŠèªãããšãã§ããŸããããã§ããã®åé¡ã«ã€ããŠè©³ãã説æããŸãã ãŸãããã¡ã€ã«ããã¹ããªãŒã ãŸãã¯ãããã¡ã«æœè±¡åããããšã§ããã䟿å©ãªAPIãåŸããããã©ããããŸã£ããããããŸããã ããã¡ã€ã«ã·ã¹ãã ã¯APIã§ãããåç §ããŠãã ããã
ãã©ã³ã㯠ãGulpãšåæ§ã«ããã¡ã€ã«ããŒã¹ã®ïŒããªãŒããŒã¹ã§ã¯ãªãïŒAPIã䜿çšããŸãã Gulpãšåæ§ã«ããã©ã°ã€ã³ã¯è€æ°ã®ãã¡ã€ã«ãååŸããå¿ èŠãããå Žåãæçµçã«ãã«ãã·ã¹ãã ããã€ãã¹ããŸãã ãã©ã³ãã¯ããã£ââãã·ã¥ã®ä»£ããã«éšåçãªåæ§ç¯ãè©Šã¿ãŸããäžèšã®ãéšåçãªåæ§ç¯ã®ä»£ããã«ãã£ãã·ã¥ããããåç §ããŠãã ããã
Rake :: Pipeline㯠Rubyã§èšè¿°ãããŠãããããã³ããšã³ãéçºã®äžçã®Nodeãããéåšæ§ãäœããéšåçãªãã«ããè©Šã¿ãŠããŸãã Yehuda Katzã¯ããã®ã·ã¹ãã ã¯ããŸãç©æ¥µçã«ãµããŒããããŠããªããšè¿°ã¹ããããã³ãªãŒãæ¡çšããŠããŸãã
Railsã¢ã»ãããã€ãã©ã€ã³ã¯éšåçãªã¢ã»ã³ããªã䜿çšããããã«ãéçºãšçç£ã«éåžžã«ç°ãªãã¢ãããŒãã䜿çšããŠãããããå±éæã«éåžžã«äºæããªããšã©ãŒãçºçããå¯èœæ§ããããŸãã ããããããã«éèŠãªããšã«ã¯ãããã¯ãšã³ãã§RORãå¿ èŠã§ãã
6.次ã¯äœã§ãã
ãã©ã°ã€ã³ã®ãªã¹ãã¯ãŸã å°ããã§ãã ããããããã§ååãªå Žåã¯ããããã³ãªãŒã«ãã£ã³ã¹ãäžããããšã匷ããå§ãããŸã ïŒ https : //github.com/joliss/broccoli#installation
ä»ã®äººããã©ã°ã€ã³éçºã«ã©ã®ããã«é¢äžããããç¥ãããã§ãã ã³ã³ãã€ã©ããã©ãããããã®ã¯éåžžã«ç°¡åã§ãããæãéèŠã§é£ããããšã¯ãé©åãªãã£ãã·ã¥ãšé床ã®äœäžãæå°éã«æããããšã§ãã ãã©ã°ã€ã³ã®éè€ã³ãŒããæžããããã«ãããå€ãã®ãã£ãã·ã¥ãã¿ãŒã³ã匷調衚瀺ããå¿ èŠããããŸãã
ä»åŸæ°é±éã«ããã£ãŠãç§ã®èšç»ã«ã¯ãããã¥ã¡ã³ãã®æ¹åãšããããã³ãªãŒã®ã«ãŒãã«ã³ãŒããšãã©ã°ã€ã³ã®ã¯ã¬ã³ãžã³ã°ãå«ãŸããŸãã ãŸããBroccoliã«ãŒãã«ã®ãã¹ããè¿œå ãããã©ã°ã€ã³çšã®ãšã¬ã¬ã³ããªçµ±åãã¹ããœãªã¥ãŒã·ã§ã³ãæäŸããããšèããŠããŸãã ãŸããæ¢åã®ãã©ã°ã€ã³ã§ã¯ããœãŒã¹ãããã¯ãµããŒããããŠããŸããã ããã¯ãããã©ãŒãã³ã¹ã®ç¹ã§éåžžã«é«äŸ¡ã§ãã ãã©ã°ã€ã³ã¯ãé 次åŒã³åºãã§ã以åã®ãã©ã°ã€ã³ã®ãœãŒã¹ããããååŸããããããæ£ããè£éããå¿ èŠããããŸããããããè¡ãæéããŸã èŠã€ããŠããŸããã
ããã«ãããã©ã«ãã®ember-cliã¹ã¿ãã¯ãæäŸããEmberãã¬ãŒã ã¯ãŒã¯ã®ãšã³ã·ã¹ãã ã§Broccoliãç©æ¥µçã«äœ¿çšãããããšãããããŸãïŒæ©èœã¯railsã³ãã³ãã©ã€ã³ãšåæ§ã§ãïŒã ãŸããEmberã«ãŒãã«ãã«ãããã»ã¹äžã«ãRake :: Pipelineããã³Gruntã眮ãæããããšèããŠããŸãã
ãŸãããããã³ãªãŒããšã³ããŒã³ãã¥ããã£ä»¥å€ã®ãããžã§ã¯ãã«é©å¿ããããšãæåŸ ããŠããŸãã AngularãBackboneãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠèšè¿°ãããJS MVCã¢ããªã±ãŒã·ã§ã³ãã¢ã»ã³ããªãå¿ èŠãšããããŸããŸãªJSããã³CSSã©ã€ãã©ãªã¯ããããã³ãªãŒã䜿çšããŠæ§ç¯ããäž»ãªåè£ã§ãã å®éã®ãã«ãã·ããªãªã«Broccoliã䜿çšããå Žåããã®APIã®ä¿¡é Œæ§ã確èªããå¿ èŠããããŸããä»åŸæ°ãæ以å ã«ãæåã®å®å®ããïŒ1.0.0ïŒããŒãžã§ã³ããªãªãŒã¹ã§ããããšãé¡ã£ãŠããŸãã
ãã®æçš¿ã¯ããããã³ãªãŒã¢ãŒããã¯ãã£ã®è©³çŽ°ã説æããæåã®æçš¿ã§ããããããã«ããããã¥ã¡ã³ãã¯ã»ãšãã©ãããŸããã ç§ã¯ããªããå§ããã®ãæäŒã£ãŠåãã§ãããªããééããã©ããªãã°ã§ãçŽããŸãã Freenodeã®#broccolijsã§èŠã€ããããã¡ãŒã«ãæžããŠ/ GoogleããŒã¯ã«é»è©±ããŠãã ããïŒjoliss42@gmail.comããŸããGithubã®å¯Ÿå¿ããã»ã¯ã·ã§ã³ã§ã質åãããã°ãæ°è»œã«ãçãããŸãã
ãã®èšäºã®èçš¿ãèªãã§æ¹è©ããŠãããJonas NicklasãJosef BrandlãPaul MillerãErik BrynãYehuda KatzãJeff FelchnerãChris WillardãJoe FioriniãLuke MeliaãAndrew DaveyãAlex Matchneerã«æè¬ããŸãã
翻蚳è ãã
ãã®ç¿»èš³ã®ä¿®æ£ã«ååããŠãããz6DabrataãšMaria Kuzovchikova ã«æè¬ããŸãã