broccoli
TRANSCRIPT
![Page 1: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/1.jpg)
BroccoliEmberConf 2014
![Page 2: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/2.jpg)
@jo_liss
![Page 3: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/3.jpg)
Background
![Page 4: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/4.jpg)
packages: Bower
![Page 5: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/5.jpg)
build tool: ???packages: Bower
![Page 6: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/6.jpg)
grunt watch
![Page 7: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/7.jpg)
.coffee
.scss
concat
minify
.handlebars
![Page 8: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/8.jpg)
...
![Page 9: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/9.jpg)
10 sec
![Page 10: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/10.jpg)
O_O
![Page 11: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/11.jpg)
Broccoli
![Page 12: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/12.jpg)
3 parts
will not talk about design choices
![Page 13: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/13.jpg)
PART 1build definitions:
Brocfile.js current syntax will change slightly
![Page 14: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/14.jpg)
yayvaporware :p
![Page 15: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/15.jpg)
editor time
![Page 16: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/16.jpg)
PART 2plugin API
![Page 17: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/17.jpg)
Broccoli only knowstrees
tree of files
string or obj
![Page 18: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/18.jpg)
{ read: function() { ... }, cleanup: function() { ... }}
![Page 19: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/19.jpg)
tree.read()
must return a directory
![Page 20: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/20.jpg)
.read()
.read()
.read().cleanup()
![Page 21: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/21.jpg)
tiny API
big helper packages
![Page 22: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/22.jpg)
broccoli-transformfor 1 input tree
![Page 23: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/23.jpg)
broccoli-transform:
transform = function(srcDir, destDir)
![Page 24: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/24.jpg)
broccoli-filter
for 1:1 file relationshipson top of broccoli-transform
e.g. CoffeeScript
![Page 25: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/25.jpg)
broccoli-filter:
processString = function (string) { return newString }
![Page 26: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/26.jpg)
broccoli-filterhas cache :)
![Page 27: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/27.jpg)
doesn’t work forSass
![Page 28: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/28.jpg)
PART 3
integration
![Page 29: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/29.jpg)
Broccoli is asmall library
![Page 30: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/30.jpg)
Broccoli <3 Grunt
![Page 32: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/32.jpg)
Integrate with backends
![Page 33: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/33.jpg)
Pairing anyone?
![Page 34: Broccoli](https://reader033.vdocument.in/reader033/viewer/2022060119/558cbbb8d8b42afb268b45ac/html5/thumbnails/34.jpg)
Blog post about design:bit.ly/broccoli-announcement
@jo_liss