27. Final Solution to
Dependency Management
1. BuildConfig.js
→ store bower.json “dab-*”deps
devDependencies/dependencies
2. gulpfile.js
→ use list of deps in tasks
Bower
???
28. JavaScript Multi Projects
bower.json deps:
dab-subproject-component
dab-common-widget-component
dab-bootstrap-component
current module
gulpfile.js
concat/TypeScript:
common.js, app.js,
templates.js, libs.js
webserver:
target/main.css
bower dependency
bower devDependency
1. Register local module
bower link
2. Use on local machine
bower link mymodule
*.d.ts
*.ts
32. Gulp Multi-Project Build-Setup
1. Why another bootstrap?
2. scaffolding vs. composition
3. multi-project development
4. TypeScript strategy
a. tsd
b. devDependency, dependency strategy
i. no </// references
ii. separate in .d.ts => performance
c. Java → .d.ts generator
d. TsLint
33. Why another bootstrap?
1. Fit to techstack
2. Large scale project
3. Multi-project strategy
4. Being up to date
34. Scaffolding vs Composition
Problems with scaffolding (Yeoman)
- copy+paste of templates
- opinionated technologies
- missing common glue
- hard to find matching techstack
- breaks on updates
- merge operations
→ convention > customization
35. Composition / Inheritance
- glue strategy for projects
- technology agnostic
- update project without merging
- reuse != copy
→ customization is the default
37. Complexity
RequireJS
- file dependencies
- Issues with testing
- 350 Requests are slow
- at runtime & async
- Angular.modules vs. modularization
→ will be one file at prod, anyway
→ which files to deliver in which package?
→ versioning
38. Simplicity
1. Modularize by module
2. Adapt complexity later: http://www.2ality.com/2014/09/es6-
modules-final.html
3. Bower: not supporting multi versioning
4. be similar to production, only dev & prod mode
angular overmind