@jdjuan

@jdjuan

@jdjuan

"The world of tomorrow is shaped by the products we build today"

@jdjuan

@jdjuan

Improve our past

@jdjuan

Design our future

@jdjuan

How to create libraries to support and improve
our ecosystem

or your company's

@jdjuan

3 Parts

@jdjuan

1. Why do I need a library anyway?

2. How do I use them in Angular?

3. Show me what you got!

@jdjuan

1. Why do I need a library anyway?

@jdjuan

Reason #1

@jdjuan

OSS

YOU

@jdjuan

OSS Rockstar

@jdjuan

@jdjuan + @caroso1222

@jdjuan

Reason #2

@jdjuan

Because you have to

@jdjuan

Company

https://www.eclipsezone.com//articles/lattix-dsm/?source=archives

@jdjuan

Reusability

Taking us to Mars

@jdjuan

Write once...

...use everywhere

@jdjuan

Fix once...

...fix everywhere

@jdjuan

Unit test once...

...unit test everywhere

@jdjuan

2. How do I use them in Angular?

@jdjuan

Compatibility

@jdjuan

1. Platforms

2. TypeScript

3. AOT

@jdjuan

Scenario #1

@jdjuan

UMD
FORMAT

@jdjuan

@jdjuan

Scenario #2

@jdjuan

FESM5
FORMAT

@jdjuan

FESM5

Flat + ESM + ES5

@jdjuan

#1 Flat

#3 ES5

#2 ESM

@jdjuan

Scenario #3

Optimized

Closure Compiler

@jdjuan

FESM2015
FORMAT

@jdjuan

FESM2015

Flat + ESM + ES2015

@jdjuan

#1 Flat

#3 ES2015

#2 ESM

@jdjuan

1. UMD

2. FESM5

3. FESM2015

@jdjuan

1. Platforms

2. TypeScript

3. AOT

@jdjuan

@jdjuan

Typings

ESM + d.ts

@jdjuan

@jdjuan

1. Platforms

2. TypeScript

3. AOT

@jdjuan

AOT

.metadata.json

@jdjuan

@jdjuan

1. Platforms

2. TypeScript

3. AOT

SUPER COMPATIBLE!

@jdjuan

@jdjuan

SHOW ME WHAT
YOU GOT

@jdjuan

@jvandemo

@davidh_23

@caroso1222

@jdjuan

@jdjuan

@jdjuan

@jdjuan

@jdjuan

@jdjuan

@jdjuan

  • Publishing
  • Module Resolution Strategies
  • Best Practices
  • Bazel
  • Testing

FOR MORE DETAILS

@jdjuan

THANK YOU!

Made with Slides.com