关于webpack和react的配合开发

   最近在用react做移动前端ui框架,刚好要用到webpack进行模块打包,经过几天的研究,发现webpack对于react真的是开发神器,尤其是热加载这一块,现在把这几天的研究成果(入门篇)写下来,希望对一些入门的新手有帮助。
  
    什么是react
看到这篇文章的同学肯定已经对react有所了解,所以在这不做介绍,不懂的同学请请前往官方网站[React.js]

项目结构:

    src/
         js/
              entry.js/入口文件
              Hello.js/组件
       index.html/页面模板

配置webpack:

第一步肯定是先配置webpack,以下我们一般都是用npm做配置

    $ npm install webpack -g
或者
    
    $ npm init
    $ npm install webpack --save-dev
以及安装

    $ npm install webpack-dev-server --save-dev
webpack-dev-server可以让我们通过端口去访问我们的工程项目(一般端口位8080,可以修改),具体在这也不做介绍。

第二步,创建配置文件,每一个项目都需要一个webpack.config.js配置。

具体配置说明可以看[中文官方文档]

主要注意下载需要的插件以及loaders

   在于react相互配合的时候主要下载以下插件:

    npm install react react-dom --save    
    
也要下载相应的Loder,react需要的主要为babel插件,添加配置

    {
       test: /\.js$/,
       exclude: /node_modules/,
       loader: 'babel',//在webpack的module部分的loaders里进行配置即可
     }
至于其它的loder看自己需求,主要css等。

这些配置完,项目跑起来组件应该就能渲染了,但是我们要加另外一个很重要的东西,就是热加载Babel-plugin-react-transform,能让我们不用刷新页面进行局部组件替换,对于我们开发人员来说这是非常方便的。

首先,我们下载相应的插件
    
    npm install --save-dev babel-plugin-react-transform
    npm install --save-dev react-transform-hmr
    npm install babel-preset-react-hmre --save-dev
如果要即使catch错误,也安装
    
    npm install --save-dev react-transform-catch-errors redbox-react
然后在根目录新建.babelrc配置babel

    {
      "presets": ["react", "es2015"],
      "env": {
        "development": {
     "plugins": [["react-transform", {
       "transforms": [{
         "transform": "react-transform-hmr",

         "imports": ["react"],

         "locals": ["module"]
           }]
         }]]
        }
      }
    }

注意要在webpack.config.js加上我们模板html(或者可以用js生成),要下载插件:

    npm install html-webpack-plugin --save-dev
引入插件

    var HtmlWebpackPlugin = require('html-webpack-plugin');

在webpack.config.js中plugins(插件项中加入)

     new HtmlWebpackPlugin({
            template:__dirname+"/src/index.html"//new 这个插件的实例,并传入相关的参数
        }),

配置完毕,启动npm即可(因为每个人设置的启动npm不一样,我这没有用命令说明。)

    注:主要针对webpack和react配合开发,不是webpack教程,第一次写文章,请谅解!




posted @ 2016-12-02 09:16  zenglongfei  阅读(467)  评论(0)    收藏  举报