// 安裝babel-core核心模塊和babel-loader npm install babel-core babel-loader --save-dev // 安裝ES6 和 React 支持 npm install babel-preset-es2015 babel-preset-react --save-dev
安裝完Babel和它的插件,配置一下它的規則,在根目錄下新建一個.babelrc空文件:html
// 告訴Babel,編譯JavaScript代碼的時候要用這兩個presets編譯 { "preset": ["es2015", "react」] }
爲webpack添加這個preLoaders(在loader處理資源以前,先用preLoaders進行處理,代碼檢查在代碼轉換以前進行)react
npm install eslint eslint-loader --save-dev
這裏使用Airbnb開發配置合集eslint-config-airbnb,這個配置合集裏面還包括如下3個插件:webpack
npm install eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y --save-dev npm install eslint-config-eslint
在根目錄下新建一個.eslintrc的空文件:web
{ "extends": "airbnb", "rules": { "comma-dangle": ["error", "never"] } }
配置webpack以前,先安裝一個webpack的插件——html-webpack-plugin,它能夠幫助咱們自動生成HTML頁面,而且引入正確的JavaScript文件依賴:npm
npm install html-webpack-plugin —save-dev
在項根目錄下新建一個webpack.config.js文件:babel
let path = require('path') let webpack = require('webpack') let HtmlwebpackPlugin = require('html-webpack-plugin') // 一些經常使用路徑 const ROOT_PATH = path.resolve(__dirname) const APP_PATH = path.resolve(ROOT_PATH, 'app') const BUILD_PATH = path.resolve(ROOT_PATH, 'build') module.exports = { entry: { app: path.resolve(APP_PATH, 'index.jsx') }, output: { path: BUILD_PATH, filename: 'bundle.js' }, // 開啓 dev source map devtool: 'eval-source-map', // 開啓 webpack dev server devServer: { historyApiFallback: true, hot: true, inline: true, progress: true }, modules: { // 配置preLoaders, 將eslint 添加進去 preLoaders: [ { test: /\.jsx?$/, loaders: ['eslint'], include: APP_PATH } ], // 配置loader,將Babel添加進去 loaders: [ { test: /\.jsx?$/, loaders: ['babel'], include: APP_PATH } ] }, // 配置 plugin plugins: [ new HtmlwebpackPlugin({ title: 'my first react webpack' }) ], resolve: { extensions: ['', '.js', '.jsx'] // 在js中import加載jsx擴展名的腳本 } }
npm install babel-preset-react-hrme --save-dev
這個preset裏面其實包括兩方面:app
配置一下 .babelrc:優化
{ "preset": ["es2015", "react"], "env": { "development": { "presets": ["react-hrme"] } } }