技术干货饥人谷技术博客让前端飞

React环境配置 & Webpack实现热加载

2017-08-08  本文已影响0人  熠辉web3

一.React环境配置

React

1.1 配置前的准备

  • 新建一个空文件夹,命名为项目名.点击文件夹,进入根目录下
  • 在项目文件夹的根目录下开启命令行, window操作系统为在根目录下 shift + 鼠标右键, 再点击 open command window(打开window命令行工具)
  • 注意: 以下的操作都是在项目文件夹的根目录下的cmd中进行操作.
  • 考虑到下载包的效率, 下载的操作我这里全部使用的cnpm, 同样可以使用npm. cnpmnpm的淘宝镜像http://npm.taobao.org/

1.2 初始化 package.json 配置文件

在命令行输入以下命令

npm init

  1. 点击Enter之后,会出现包的一些配置参数,根据需求设置即可.


    npm initnpm init
  2. 最后出现Is this ok?,输入yes,就可以看见出现了一个 package.json 文件.该配置文件为包的目录文件.

    npm init配置完成npm init配置完成

1.3 安装React和React-DOM

在命令行输入以下命令

cnpm install --save react react-dom

1.4 安装babel及其依赖

在命令行输入以下命令

cnpm install babel-preset-es2015 babelify babel-preset-react babel-plugin-react-html-attrs babel-loader --save

1.5 React和Babel安装完成后的目录如下

安装完react和babel后的文件目录安装完react和babel后的文件目录

二.webpack安装

2.1 在全局下安装webpack

在命令行下输入以下命令

cnpm install -g webpack

2.2 在全局下安装webpack-dev-server

1. 在命令行下输入以下命令

cnpm install -g webpack-dev-server

2. 如果安装时出现:
Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_modules\webpack-dev-server_tmp' at Error (native)报错信息,请使用windows + x 使用admin权限进行安装

2.3 在项目根目录下下安装webpack

在命令行下输入以下命令

cnpm install webpack --save

2.4 在项目根目录安装webpack-dev-server

1. 在命令行下输入以下命令

cnpm install webpack-dev-server --save

2. 如果安装时出现:
Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_modules\webpack-dev-server_tmp' at Error (native)报错信息,请使用windows + x 使用admin权限进行安装

2.5 Webpack安装完成后的目录如下

此时可以看到我们的 package.json文件中对添加了webpack和webpack-dev-server的的包.

web安装完成后的文件目录web安装完成后的文件目录

三.实现webpack热加载(以Hello World!举例)

3.1 在根目录下新建index.html

<div id="example">我是主页</div>
<script src="./src/bundle.js"></script>

3.2 新建index.js用作入口文件

var React = require('react');
var ReactDOM = require('react-dom');

ReactDOM.render(
    <h1>Hello World!</h1>,
    document.getElementById('example')
)

3.3 在根目录下新建webpack.config.js

var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var path = require('path');

module.exports = {
  context: path.join(__dirname),
  devtool: debug ? "inline-sourcemap" : null,
  entry: "./src/js/index.js", //这里是入口文件地址,可根据自身的位置进行修改
  module: {
    loaders: [
      {
        test: /\.js?$/,
        exclude: /(node_modules)/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015'],
          plugins: ['react-html-attrs'], //添加组件的插件配置
        }
      },
      //下面是使用 ant-design 的配置文件
      { test: /\.css$/, loader: 'style-loader!css-loader' }
    ]
  },
  output: {
    path: __dirname,
    filename: "./src/bundle.js"
  },
  plugins: debug ? [] : [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
  ],
};

3.4 利用webpack打包

webpack

3.5 实现Webpack热加载

Q: 为什么要实现热加载?

如果每次在文件中进行了操作, 那么需要每次在命令行中输入webpack进行编译后才能够在浏览器中看到效果. 这也就是为什么要实现热加载的原因.webpack-dev-server会帮我们创建一个本地服务器,我们在编辑器中编辑后,就能实时的在浏览器中看到效果

webpack-dev-server --inline --hot


本例中的源文件下载地址:

  1. 百度网盘: https://pan.baidu.com/s/1o8Bhm3o 密码: 3ttf
  2. GitHub: https://github.com/Lee-Tanghui/React-init.git
上一篇 下一篇

猜你喜欢

热点阅读