使用webpack + react 构建应用的基本流程与注意事项

构建react应用,使用es6风格写法是最合适的。所以要使用babel进行编译,而且由于react的jsx语法自成一套,所以解析标准要包含es2015和react

webpack部分


模块依赖:

babel模块:

    babel-core
    babel-loader
    babel-preset-es2015
    babel-preset-react

css、less、img url 加载模块:

    css-loader
    less-loader
    style-loader
    url-loader

react模块:

   react
   react-dom
   react-router  // react路由
   react-addons-css-transition-group // 动画过渡

webpack中的实用插件:

1.js代码压缩优化插件: webpack.optimize.UglifyJsPlugin
在开发模式下使用react的时候, react会给出很多友好的提示,以及给出各种调试信息,而且文件没有压缩,十分巨大,而使用其他的方式进行压缩时,react-dom还会给出警告,所以可以直接使用webpack的插件进行压缩

  // js代码压缩优化
var UglifyJs = new webpack.optimize.UglifyJsPlugin({

    output: {
        comments: false,
    },
    compress: {
        warnings: false
    }

});

2.css代码单独打包出去:

  // css单独打包插件
  var ExtractTextPlugin = require('extract-text-webpack-plugin');
  1. 定义开发环境,让开发环境与node环境关联起来:
    // 开启生产环境模式, 启动时要通过NODE_ENV=production来启动
    var Define = new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
      }
    });

备注: 这样关联起来之后, 在发布生产环境代码的时候,就应该这样调用:

  NODE_ENV=production webpack

react部分


react推崇组件化开发, 所以可以把页面中的一切都组件化起来,由于配合了webpack分析模块依赖,所以不仅js可以模块化,css甚至img也可以模块化,把一个功能所需的视图、css、js、img、单独管理起来,就可以很好地做成一个组件了。

所以我的项目目录里有个widget文件夹(也可以叫component), 文件夹的结构如下:

    widget
       --- 导航组件(NavBox)
             |导航组件jsx
             |导航组件less
       --- 轮播组件(SlideBox)
             |轮播组件jsx
             |轮播组件less

然后是使用react-router
react-router是一个很大的东西,建议直接查看相关的官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,544评论 7 35
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,334评论 7 110
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 13,849评论 0 21
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,685评论 4 31
  • 想静下心来认真 的开始某件事,总是要在喝掉无数鸡汤,看过无数警示之后才能下定决心。 2017年2月27日,既是让自...
    辰木子阅读 2,755评论 1 2