Projekt

Obecné

Profil

Stáhnout (1.13 KB) Statistiky
| Větev: | Revize:
1
# babel-plugin-transform-es2015-block-scoping
2

    
3
> Compile ES2015 block scoping (const and let) to ES5
4

    
5
## Installation
6

    
7
```sh
8
npm install --save-dev babel-plugin-transform-es2015-block-scoping
9
```
10

    
11
## Usage
12

    
13
### Via `.babelrc` (Recommended)
14

    
15
**.babelrc**
16

    
17
Without options:
18

    
19
```json
20
{
21
  "plugins": ["transform-es2015-block-scoping"]
22
}
23
```
24

    
25
With options:
26

    
27
```json
28
{
29
  "plugins": [
30
    ["transform-es2015-block-scoping", {
31
      "throwIfClosureRequired": true
32
    }]
33
  ]
34
}
35
```
36

    
37
### Via CLI
38

    
39
```sh
40
babel --plugins transform-es2015-block-scoping script.js
41
```
42

    
43
### Via Node API
44

    
45
```javascript
46
require("babel-core").transform("code", {
47
  plugins: ["transform-es2015-block-scoping"]
48
});
49
```
50

    
51
## Options `throwIfClosureRequired`
52

    
53
In cases such as the following it's impossible to rewrite let/const without adding an additional function and closure while transforming:
54

    
55
```javascript
56
for (let i = 0; i < 5; i++) {
57
  setTimeout(() => console.log(i), 1);
58
}
59
```
60

    
61
In extremely performance-sensitive code, this can be undesirable. If `"throwIfClosureRequired": true` is set, Babel throws when transforming these patterns instead of automatically adding an additional function.
(2-2/4)