Babel是一個JavaScript編譯和工具平台,使用Babel我們可以:使用新版本的JavaScript(ES6/ES2015,ES7/ES2016),盡管有些瀏覽器不能全部支持新特性;使用JavaScript語言擴展,例如React JSX。Babel是一個獨立的工具,可以與Webpack一起使用。Babel已經模塊化並分布在不同的npm模塊中,其中核心的功能可以在babel-core模塊中獲得。其他的部分根據用戶的需求來下載:如果想與webpack一起使用,需要安裝babel-loader模塊;如果想使用ES6特性,需要安裝babel-preset-2015;如果想使用React JSX,那么需要安裝babel-preset-react。當然還有一些其他的配置模塊,這里並沒有全部列出。接下來我們看一個簡單的React例子(源碼下載)。
1、安裝必須的npm模塊
安裝babel npm install babel-core babel-loader babel-preset-es2015 babel-preset-react 安裝react npm install react react-dom 安裝json loader npm install json-loader
2、代碼文件
//Greeter.js import React, {Component} from 'react' import config from './config.json' class Greeter extends Component { render() { return ( <div>{config.greetText}</div> ); } } export default Greeter //main.js import React from 'react'; import {render} from 'react-dom'; import Greeter from './Greeter'; render(<Greeter />, document.getElementById('root'));
3、設置webpack文件
module.exports = { devtool: 'eval-source-map', entry: __dirname + "/app/main.js", output: { path: __dirname + "/public", filename: "bundle.js" }, module: { loaders: [ { test: /\.json$/, loader: "json" }, { test: /\.js$/, exclude: /node_modules/, loader: 'babel', query: { presets: ['es2015', 'react'] } } ] }, devServer: { contentBase: "./public", colors: true, historyApiFallback: true, inline: true } };
運行webpack命令,然后打開index.html文件就可以了。源碼下載。