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 相关文章推荐
用js怎么把&字符换成"&amp:"
Oct 19 Javascript
document.open() 与 document.write()的区别
Aug 13 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
Jan 01 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
JS实现简单的Canvas画图实例
Jul 04 Javascript
JQuery实现鼠标移动到图片上显示边框效果
Jan 09 Javascript
js日期对象兼容性的处理方法
Jan 28 Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
js实现选项卡效果
Mar 07 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 Javascript
在vue中实现给每个页面顶部设置title
Jul 29 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
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python文件处理
2016/02/29 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
如何基于python实现不邻接植花
2020/05/01 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
银行贷款收入证明
2014/10/17 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
庆六一开幕词
2015/01/29 职场文书
车间质检员岗位职责
2015/04/08 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
大队委员竞选稿
2015/11/20 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python