react做爲當前十分流行的前端框架,相信不少前端er都有蠢蠢欲動的學習它的想法。工欲善其事,必先利其器。這篇文章就簡單的給你們介紹一下如何我快速的搭建一個react
前端開發環境。主要針對於react
小白,大神不喜勿噴。
從標題能夠看出,這裏不會僅僅只介紹一下react
的開發環境如何搭建。我將這個系列分紅三篇介紹:css
第一篇--快速搭建一個react
開發環境。html
第二篇--快速開發一個react
開發環境腳手架工具。有了這個工具,在任何地方都可以一鍵生成環境。前端
第三篇--腳手架依賴的核心庫co
的源碼解析。node
接下來就開始介紹react
開發環境的基本搭建。react
須要經過webpack
進行打包,因此請確保本身的機器上安裝了webpack
和nodejs
。無安裝的請自行谷歌。react
babel
react
使用jsx
的語法,這種語法形式瀏覽器是不能識別的。因此須要藉助babel
編譯器對咱們的文件進行編譯。簡單的說這裏的babel
就有兩個做用:webpack
一是編譯一些基本的react
特性git
二是讓咱們可以使用es6
等語法形式
接下來經過以下方式安裝和配置對應的loader
。es6
babel-loader
// 安裝 babel-core 和 babel-loader npm install babel-core babel-loader --save-dev // 安裝babel的es6和react支持 npm install babel-preset-es2015 babel-preset-react --save-dev
babel-preset-es2015
:將es6
語法解析成瀏覽器支持的es5
語法babel-preset-react
:用於react
語法的解析和優化github
.babelrc
文件{ "presets":["es2015", "react"] // 告訴babel解析js語法的時候須要使用這兩個preset }
上面就是咱們對babel-loader
的基本配置, 爲了保持js
語法的一致性和嚴謹性,咱們還須要安裝和配置eslint
。web
eslint
eslint-loader
npm install eslint eslint-loader --save-dev
安裝好eslint-loader
以後 咱們還須要安裝一個第三方配置好的格式插件 這裏咱們將使用eslint-config-standard-react
這個插件。
eslint-config-standard-react
npm install eslint-config-standard eslint-config-standard-react eslint-plugin-promise eslint-plugin-react eslint-plugin-standard --save-dev
.eslintrc
文件在根目錄下創建一個.eslintrc
文件, 同時寫入以下代碼:
{ "extends": ["standard", "standard-react"] }
HMR
功能HMR(Hot Module Replacement)
功能就是一般所說的熱加載功能, babel
提供了一個預設babel-preset-react-hmre
能夠很好的幫助咱們完成react
組件的熱加載功能。
babel-preset-react-hmre
npm install babel-preset-react-hmre --save-dev
這個預設主要包含了以下兩個插件:
react-transform-hmr
:實現熱加載react-transform-catch-errors
:捕獲render
中的方法並展示在界面上
.babelrc
文件{ "presets": ["react", "es2015"], "env": { "development": { "presets": ["react-hmre"] } } }
webpack.config.js
文件經過上面的幾個步驟,咱們就大體完成了react
開發環境的基本搭建。下面就是咱們完整的webpack.config.js
文件。
const path = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') const OpenBrowserPlugin = require('open-browser-webpack-plugin') const ROOT_PATH = path.resolve(__dirname) const SRC_PATH = path.resolve(__dirname, 'src') const BUILD_PATH = path.resolve(__dirname, 'build') const webpackOptions = { devtool: '#source-map', entry: { app: path.resolve(SRC_PATH, 'index.jsx') }, output: { path: BUILD_PATH, filename: 'bundle.js' }, module: { //eslint應該在preLoaders中進行 preLoaders: [ { test: /\.jsx?$/, loader: 'eslint', exclude: /node_modules/ } ], //配置loaders loaders: [ { test: /\.jsx?$/, loader: 'babel', exclude: /node_modules/ }, { test: /\.css?$/, loader: 'style!css!stylus', include: SRC_PATH } ] }, plugins: [ new HtmlWebpackPlugin({ title: 'react-start' }), new OpenBrowserPlugin({ url: 'http://localhost:8080' }) ], resolve: { extensions: ['', '.js', '.jsx'] }, devServer: { historyApiFallback: true, hot: true, inline: true, progress: true } } module.exports = webpackOptions
以上就是react
簡單的環境搭建,後面會推出後續的文章。喜歡的同窗歡迎關注,並能夠從個人github
--Pavooo上得到文章中的全部代碼。