简体   繁体   中英

Does the order of Babel 6 presets matter?

When I list the presets, does the order matter?

In other words, are the following .babelrc files equivalent?

.babelrc #1

{
  "presets": ["es2015", "stage-2", "react"]
}

.babelrc #2

{
  "presets": ["react", "stage-2", "es2015"]
}

From babeljs.io/docs/plugins: (as of 9/30/2016)

Plugin/Preset Ordering

Ordering matters for each visitor in the plugin. This means if two transforms both visit “Program”, the transforms will run in either plugin or preset order.

Plugins run before Presets.

Plugin ordering is first to last.

"plugins": [
  "transform-decorators-legacy", // will run first
  "transform-class-properties" // will run second
]

Preset ordering is reversed (last to first).

Yes this is confusing, see babel/notes #2 .

I believe the reason why (for backwards compatability) is that most users had listed “es2015” first and “stage-0” second. And stage-0 would run before es2015.

"presets": [
  "es2015", // will run third
  "react", // will run second
  "stage-2" // will run first
]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM