基于webpack的react开发环境搭建新手教程

最近学习react-webpack项目搭建,找到一篇我认为不错的博客,跟着学习了一番,写得很详细很好,本篇博客纯属记录总结,要看更详细的搭建过程及解析,请戳:

基于webpack的React项目搭建(一)

一、项目创建

1. 新建项目文件夹(手动新建或者执行命令:mkdir webpack-react),这里以webpack-react作为项目文件夹名称

2. 进入文件夹webpack-react,然后执行初始化命令:npm init

3. 在webpack-react下创建下列相应文件夹和文件:

  bin 

    |--dev-server.js (webpack-dev-server配置文件)

  src(项目主文件夹,后面编写的文件大多都放在这里)

    |--App.js

    |--index.js

    |--index.template.html

  webpack(webpack配置文件夹)

    |--webpack.config.js

  .babelrc(babel配置文件,json)

二、根目录下执行命令,安装react、webpack

   npm install react react-dom --save

  npm install webpack --save-dev

  如果你使用 webpack 4+ 版本,你还需要安装 CLI:  npm install --save-dev webpack-cli

  注:这里选择在项目本地安装webpack。不推荐全局安装 webpack,全局安装webpack会将你项目中的 webpack 锁定到指定版本,并且在使用不同的 webpack 版本的项目中,可能会导致构建失败。在node_modules/.bin/文件夹里执行命令查看webpack版本: webpack -v

三、安装Babel相关

  因为react使用不能被浏览器直接解析的jsx语法,需引入Babel进行转码,执行命令:

  npm babel-core babel-loader babel-preset-es2015 babel-preset-react --save

  注: babel-loader:babel加载器;    babel-preset-es2015:支持es2015;   babel-preset-react: jsx 转换成js;

四、安装webpack-dev-server,项目根目录下执行命令:

   npm install webpack-dev-server --save-dev

五、安装html-webpack-plugin,项目根目录下执行命令:

  npm install html-webpack-plugin --save-dev

六、各文件代码如下:

  bin/dev-server.js

 'use strict'

 const WebpackDevServer = require('webpack-dev-server');
const config = require('../webpack/webpack.config');
const webpack = require('webpack');
const path = require('path');
const compiler = webpack(config); const server = new WebpackDevServer(compiler, {
contentBase: path.resolve(__dirname, '../dist'), //默认会以根文件夹提供本地服务器,这里指定文件夹
historyApiFallback: true, //在开发单页应用时非常有用,它依赖于HTML5 history API,如果设置为true,所有的跳转将指向index.html
port: 9090, //如果省略,默认8080
publicPath: "/"
});
server.listen(9090, 'localhost', function (err) {
if (err) throw err
})

  src/App.js

 /*
* 引入的模块是否需要用{}包裹,取决于该模块被导出时是否默认导出
* 比如这里的 App 使用export default 默认导出, 在其他地方需要引入App时,则不需要{}包裹
*/
import React, { Component } from 'react'; export default class App extends Component{
render () {
return (
<div>Hello React-webpack!</div>
)
}
}

  src/index.js

 import React from 'react';
import ReactDOM from 'react-dom';
import App from './App'; ReactDOM.render(
<App />,
document.getElementById('app')
)

  src/index.template.js

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<div id="app">
</div>
</body>
</html>

  webpack/webpack.config.js

 const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = {
mode: "development",
entry: path.resolve(__dirname, '../src/index.js'), //指定入口文件,程序从这里开始编译,__dirname当前所在目录, ../表示上一级目录, ./同级目录
output: {
path: path.resolve(__dirname, '../dist'), // 输出的路径
filename: 'app/[name]_[hash:8].js' // 打包后文件
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
loader: 'babel-loader',
exclude: /node_modules/
}
]
},
   plugins: [
// Html-webpack-plugin配置
     new HtmlWebpackPlugin({
       template: path.resolve(__dirname, '../src/index.template.html'),
       inject: true
     })
   ]
}

  .babelrc

 {
"presets": [
"es2015",
"react"
]
}

七、基础的环境就搭建好了,在根目录下运行: npm run dev,然后浏览器访问  http://localhost:9090  ,如果看到Hello React-webpack!  就说明搭建成功了。

  

  

上一篇:web集群时session同步的3种方法[转]


下一篇:MySQL InnoDB表--BTree基本数据结构