React + webpack 环境配置的方法步骤


Posted in Javascript onSeptember 07, 2017

本文介绍了React + webpack 环境配置的方法步骤,分享给大家,具体如下:

安装配置Babel

babel-preset-es2015 ES6语法包,使代码可以随意地使用ES6的新特性。

babel-preset-react React语法包,专门用于React的优化,在代码中可以使用React ES6 classes的写法,同时直接支持JSX语法格式

安装Babel loader

// 安装babel-core核心模块和babel-loader
npm install babel-core babel-loader --save-dev


// 安装ES6 和 React 支持
npm install babel-preset-es2015 babel-preset-react --save-dev

配置 .babelrc

安装完Babel和它的插件,配置一下它的规则,在根目录下新建一个.babelrc空文件:

// 告诉Babel,编译JavaScript代码的时候要用这两个presets编译
 {
  "preset": ["es2015", "react”]
 }

安装配置ESLint

安装ESLint loader

为webpack添加这个preLoaders(在loader处理资源之前,先用preLoaders进行处理,代码检查在代码转换之前进行)

npm install eslint eslint-loader --save-dev

这里使用Airbnb开发配置合集eslint-config-airbnb,这个配置合集里面还包括以下3个插件:

npm install eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y --save-dev

npm install eslint-config-eslint

配置 .eslintrc

在根目录下新建一个.eslintrc的空文件:

{
  "extends": "airbnb",
  "rules": {
   "comma-dangle": ["error", "never"]
  }
 }

安装配置webpack

配置webpack之前,先安装一个webpack的插件——html-webpack-plugin,它可以帮助我们自动生成HTML页面,并且引入正确的JavaScript文件依赖:

npm install html-webpack-plugin —save-dev

在项根目录下新建一个webpack.config.js文件:

let path = require('path') 
let webpack = require('webpack')
let HtmlwebpackPlugin = require('html-webpack-plugin')
// 一些常用路径
const ROOT_PATH = path.resolve(__dirname)
const APP_PATH = path.resolve(ROOT_PATH, 'app')
const BUILD_PATH = path.resolve(ROOT_PATH, 'build')

module.exports = {
 entry: {
  app: path.resolve(APP_PATH, 'index.jsx')
 },
 output: {
  path: BUILD_PATH,
  filename: 'bundle.js'
 },
 // 开启 dev source map
 devtool: 'eval-source-map',
 // 开启 webpack dev server
 devServer: {
  historyApiFallback: true,
  hot: true,
  inline: true,
  progress: true
 },

 modules: {
  // 配置preLoaders, 将eslint 添加进去
  preLoaders: [
   {
    test: /\.jsx?$/,
    loaders: ['eslint'],
    include: APP_PATH
   }
  ],
  
  // 配置loader,将Babel添加进去
  loaders: [
   {
    test: /\.jsx?$/,
    loaders: ['babel'],
    include: APP_PATH
   }
  ]
 },

 // 配置 plugin
 plugins: [
  new HtmlwebpackPlugin({
   title: 'my first react webpack'
  })
 ],
 resolve: {
  extensions: ['', '.js', '.jsx']
  // 在js中import加载jsx扩展名的脚本
 }
}

添加组件热加载(HMR)功能

npm install babel-preset-react-hrme --save-dev

这个preset里面其实包括两方面:

  • react-transform-hmr用来实现热加载
  • react-transform-catch-errors用来捕获render里面的方法,并且直接展示在界面上

配置一下 .babelrc:

{
 "preset": ["es2015", "react"],
 "env": {
  "development": {
   "presets": ["react-hrme"]
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 1.0.2
Oct 11 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JavaScript中的对象与JSON
Jul 03 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
Sep 10 Javascript
vue slots 组件的组合/分发实例
Sep 06 Javascript
对vue中v-if的常见使用方法详解
Sep 28 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
Apr 28 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 #Javascript
基于js粘贴事件paste简单解析以及遇到的坑
Sep 07 #Javascript
微信小程序实现轮播图效果
Sep 07 #Javascript
使用mint-ui开发项目的一些心得(分享)
Sep 07 #Javascript
JavaScript+CSS相册特效实例代码
Sep 07 #Javascript
AngularJS 打开新的标签页实现代码
Sep 07 #Javascript
基于Cookie常用操作以及属性介绍
Sep 07 #Javascript
You might like
文章推荐系统(二)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
vue实现倒计时获取验证码效果
2020/04/17 Javascript
python进阶教程之循环对象
2014/08/30 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
ipad上运行python的方法步骤
2019/10/12 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
工作求职信
2014/07/04 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
村干部任职承诺书
2015/01/21 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python