什麼是Babelreact
Babel 官方文檔: https://babeljs.io/git
Babel 中文文檔:https://www.babeljs.cn/es6
咱們知道各個瀏覽器對JavaScript版本的支持各不相同,不少新的語法沒法直接在瀏覽器中運行,爲了解決這個「溝通不順暢」的問題,因此就有了Babel,Babel主要用於將 ECMAScript 2015+ 版本的代碼轉換爲向後兼容的 JavaScript 語法,以便可以運行在當前和舊版本的瀏覽器或其餘環境中。有了Babel,咱們能夠肆無忌憚的使用ES6+的語法。github
如何配置babel瀏覽器
// .babelrc文件
{ "presets": [ "es2015", "react", "stage-0" ], "plugins": [] }
這個配置文件是針對babel6的,babel6作了一系列模塊化,不像babel5同樣把全部的內容都加載。babel
好比要編譯es6,咱們須要設置presets包含"es2015",即預先加載es6編譯的模塊;模塊化
若是須要編譯jsx,咱們須要設置presets包含"react",即預先加載react編譯的模塊;spa
presets:預設,即一組預先設定的插件,是babel插件的組合插件
presets與plugins同時存在的執行順序code
1. plugins運行在presets以前;
2. plugins配置項,按照聲明順序執行,從第一個到最後一個;
3. presets配置項,按照聲明逆序執行,從最後一個到第一個(主要是爲了確保向後兼容)
stage-x:指處於某一階段的js語言提案
stage-x的參數列表請參考:https://github.com/babel/babel/blob/master/packages/babel-preset-stage-0/README.md
!!! babel7的一些變化:
babel7中刪除了"stage-x"的預設;
建議使用env,代替 es201五、es201六、es2017預設