首先创建项目,确保该项目已经安装了webpack和webpack-dev-server具体安装方法请参考上章所述.

在上一章说过babel是一个javascript编辑器,在react项目中使用babel有以下两个目的:

1:让代码支持ES6语法

2:支持react的一些特性(例如JSX语法)

针对以上两个特性,有如下两个presets可以完美解决

  1. babel-preset-es2015
  2. babel-preset-react

之前我们说过webpack中的loader是用于文件特定格式的转换,那么在这里我们就需要安装Babel loader

  1. //安装babel-core核心模块和babel-loader
  2. npm install babel-core babel-loader --save-dev
  3. //安装ES6和React支持
  4. npm install babel-preset-es2015 babel-preset-react --save-dev

babel安装完成后,接下来要做的当然是配置该插件了,让我们新建一个.babelrc的配置文件

  1. {
  2. "presets":["es2015","react"],
  3. "plugins":["transform-object-rest-spread"]
  4. }

当然这些当然还不够,在写大型项目的时候一个统一的代码规范是必须的,这样有助于提高开发效率,在这里给大家推荐一下ESLint,他的强大之处和babel有点相似,提供一个完全可配置的检查规则,而且提供了非常多的第三方plugin,适合不同的开发场所,还能输出详细的错误信息,当然最6的一点是它支持ES6最新语法的同时还支持JSX语法,所以说他为React的绝配也不为过.

一、安装ESLint loader

同样为webpack添加这个loader 当然更准确的说是preloader 为什么这么说呢 代码规范检查肯定是要在代码编译之前来执行的,接下来就来安装这个loader,同时eslint也提供了完整的代码检查规则plugin我们就一同安装下

  1. npm install eslint eslint-loader --save-dev
  2. npm install eslint-plugin-import esling-plugin-react eslint-plugin-jsx-a11y --save-dev
  3. npm install eslint-config-airbnb --save-dev

接下来我们来配置.eslintrc

  1. {
  2. "extends":"airbnb",//继承插件的检查规则
  3. "rules": {
  4. "comma-dangle": ["error","never"] //修改默认规则,数组最后一项不加逗号 例如([1,2,3,4,]修改为[1,2,3,4])
  5. }
  6. }

babel和eslint配置安装完成后,接下来我们要做的是如何把他们结合在一起,首先我们新建一个webpack.config.js文件,我的配置信息如下:

  1. var path = require('path');
  2. var htmlWebpackPugins = require('html-webpack-plugin');
  3. var extracttext = require('extract-text-webpack-plugin');
  4.  
  5. //定义常用路径
  6. var ROOT_PATH = path.resolve(__dirname);
  7. var APP_PATH = path.resolve(ROOT_PATH,'app');
  8. var BULID_PATH = path.resolve(ROOT_PATH,'build');
  9. module.exports = {
  10. entry:{
  11. app:path.resolve(ROOT_PATH,'index.jsx')
  12. },
  13. output:{
  14. path:BULID_PATH,
  15. filename:'bundle_[hash].js'
  16. },
  17. devtool:eval-source-map, //开启热更新
  18. devServer:{
  19. historyApiFallback:true,
  20. hot:true,
  21. inline:true,
  22. progress:true
  23. },
  24. module:{
  25. rules:[{
  26. test:/\.css$/,
  27. use: extracttext.extract({
  28. fallback: "style-loader",
  29. use: "css-loader"
  30. }),
  31. test:/\.jsx?$/,
  32. use:'babel-loader'
  33. }],
  34. },
  35. resolve:{
  36. ['.js','.jsx'] //添加拓展名
  37. },
  38. plugins:[
  39. new htmlWebpackPugins({
  40. title:'myfirstreact',
  41. minify:false
  42. // templateContent:function(){
  43. // var html = "<div></div>";
  44. // return html;
  45. // }
  46. }),
  47. new extracttext('styles.css')
  48. ]
  49. }

配置文件写好以后开始书写项目的入口文件app.jsx,当然再次之前我们需要引入react库添加进去:

  1. npm install react-dom --save //因为生产环境需要 所以用--save

最后便开始书写我们的app.jsx:

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. function App(){
  4. return (
  5. <div>
  6. <h1>helslgggos react</h1>
  7. </div>
  8. )
  9. }
  10. const app = document.createElement('div');
  11. document.body.appendChild(app);

至此我们的react基础环境就搭建成功了,执行命令npm run dev 可以看到酷炫的热加载效果  so cool ok今天的分享就到这里了

React+webpack开发环境的搭建的更多相关文章

  1. react+webpack开发环境配置

    react是目前非常热门的前端框架,提倡组件化开发.所谓的组件,简单理解,就是一个独立的页面部件(包括页面模版,样式,逻辑等),它是一个独立的整体. webpack,是一个模块打包工具,其主要功能,就 ...

  2. React Native开发环境的搭建

    我只能说搭建开发环境还是不能相信网上纷乱的博客,还是中文网靠谱. http://reactnative.cn/docs/0.47/getting-started.html 纯粹只是为了记录一下.

  3. 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)

    开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...

  4. [webpack] 配置react+es6开发环境

    写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...

  5. [转载]Sublime Text 3 搭建 React.js 开发环境

    [转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...

  6. 从零开始配置TypeScript + React + React-Router + Redux + Webpack开发环境

    转载请注明出处! 说在前面的话: 1.为什么不使用现成的脚手架?脚手架配置的东西太多太重了,一股脑全塞给你,我只想先用一些我能懂的库和插件,然后慢慢的添加其他的.而且自己从零开始配置也能学到更多的东西 ...

  7. React Native开发 - 搭建React Native开发环境

    移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift.那么对于开发一个App,至少需要两套代码.两个团队.对于公司来说,成本还是有的. ...

  8. (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境

    通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...

  9. react+webpack+babel环境搭建

    [react+webpack+babel环境搭建] 1.react官方文档推荐使用 babel-preset-react.babel-preset-es2015 两个perset. Babel官方文档 ...

随机推荐

  1. 获取CPU系列号,硬盘系

    unit Secrity; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  2. 让php Session 存入 redis 配置方法

    首先要做的就是安装redis 安装方法:http://redis.io/download Installation Download, extract and compile Redis with: ...

  3. SQL查询今天、昨天、7天内、30天

    今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...

  4. JQuery hover toggle事件使用

    JQuery hover toggle事件使用: <%@ page language="java" import="java.util.*" pageEn ...

  5. Pomelo框架

    一个典型的多进程MMO运行架构, 如下图所示: pomelo框架的组成如图所示: 架构把游戏服务器做了抽象, 抽象成为两类:前端服务器和后端服务器, 如图: 前端服务器(frontend)的职责: 负 ...

  6. POJ2185(KMP)

    Milking Grid Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7896   Accepted: 3408 Desc ...

  7. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  8. java_JDBC(4)

    一.Statement import java.sql.*; public class TestJDBC { public static void main(String[] args) { Conn ...

  9. DBCC CHECKIDENT在 SQL Server修改指定表的当前标识值

    强制将当前标识值设为新值 ---最后 0 表示新值从1开始 --注意若前边有内容,最好删除,不然id会重复 DBCC CHECKIDENT ("表名称", RESEED, 0);

  10. ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

    .NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中.对于分布式缓存,.NET Core提供了针对 ...