-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpolyfill.info
63 lines (42 loc) · 1.53 KB
/
polyfill.info
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
babel (ohne polyfill oder Helper-Runtime)
-----------------------------------------
Alle Helper werden im Code inline eingefügt.
+ Keine Abhängikeiten
+ Keine Verschmutzung des globalen Scopes
- Redundanter Code
@babel/plugin-transform-runtime
---------------------------------------------------------
biegt alle Polyfill-Helper zum Paket "@babel/runtime" um.
+ Weniger Code-Redundanz
- Code hat "babel-runtime" Abhängigkeit
@babel/polyfill
--------------
modifiziert die globale Umgebung
+ ermöglicht "foobar".includes('foo')
- Verändert den globale Scope
Best Practice (für beste Performance)
-------------------------------------
### Bibliothek
#### Maximale Performance
Hier sollte "@babel/plugin-transform-runtime" genutzt werden und eine
Abhängigkeit zu "@babel/runtime" und ggf. zu "@babel/polyfill" kommuniziert
werden (um das Optimierungspotential für Anwendungen nicht zu verschenken):
package.json:
...
"devDependencies": {"@babel/polyfill": "..."}
...
"dependencies": {"babel-runtime": "..."}
...
Für lokale Tests muss "babel-runtime" und zusätzlich "@babel/polyfill"
eingefügt werden.
#### Maximale Kompatibilität
Hier sollte auf "@babel/plugin-transform-runtime" verzichtet werden, um keine
transitiven Abhängigkeiten zu erzeugen. Eingriffe in den globale Scope werden
nicht vorgenommen.
### Applikation
Hier sollte "@babel/plugin-transform-runtime" genutzt werden und
"@babel/runtime" sowie "@babel/polyfill" eingebaut werden:
package.json:
...
"devDepenedencies": {"@babel/polyfill": "...", "babel-runtime": "..."}
...