React + webpack 環境配置

安裝配置Babel

  • babel-preset-es2015 ES6語法包,使代碼能夠隨意地使用ES6的新特性。
  • babel-preset-react React語法包,專門用於React的優化,在代碼中可使用React ES6 classes的寫法,同時直接支持JSX語法格式
  1. 安裝Babel loader
// 安裝babel-core核心模塊和babel-loader
npm install babel-core babel-loader --save-dev


// 安裝ES6 和 React 支持
npm install babel-preset-es2015 babel-preset-react --save-dev
  1. 配置 .babelrc

安裝完Babel和它的插件,配置一下它的規則,在根目錄下新建一個.babelrc空文件:html

// 告訴Babel,編譯JavaScript代碼的時候要用這兩個presets編譯
 {
   "preset": ["es2015", "react」]
 }

安裝配置ESLint

  1. 安裝ESLint loader

爲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
  1. 配置 .eslintrc

在根目錄下新建一個.eslintrc的空文件:web

{
   "extends": "airbnb",
   "rules": {
     "comma-dangle": ["error", "never"]
   }
 }

安裝配置webpack

配置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擴展名的腳本
  }
}

添加組件熱加載(HMR)功能

npm install babel-preset-react-hrme --save-dev

這個preset裏面其實包括兩方面:app

  • react-transform-hmr用來實現熱加載
  • react-transform-catch-errors用來捕獲render裏面的方法,而且直接展現在界面上

配置一下 .babelrc:優化

{
  "preset": ["es2015", "react"],
  "env": {
    "development": {
      "presets": ["react-hrme"]
    }
  }
}
相關文章
相關標籤/搜索