React+webpack开发环境的搭建
首先创建项目,确保该项目已经安装了webpack和webpack-dev-server具体安装方法请参考上章所述.
在上一章说过babel是一个javascript编辑器,在react项目中使用babel有以下两个目的:
1:让代码支持ES6语法
2:支持react的一些特性(例如JSX语法)
针对以上两个特性,有如下两个presets可以完美解决
- babel-preset-es2015
- babel-preset-react
之前我们说过webpack中的loader是用于文件特定格式的转换,那么在这里我们就需要安装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
babel安装完成后,接下来要做的当然是配置该插件了,让我们新建一个.babelrc的配置文件
- {
- "presets":["es2015","react"],
- "plugins":["transform-object-rest-spread"]
- }
当然这些当然还不够,在写大型项目的时候一个统一的代码规范是必须的,这样有助于提高开发效率,在这里给大家推荐一下ESLint,他的强大之处和babel有点相似,提供一个完全可配置的检查规则,而且提供了非常多的第三方plugin,适合不同的开发场所,还能输出详细的错误信息,当然最6的一点是它支持ES6最新语法的同时还支持JSX语法,所以说他为React的绝配也不为过.
一、安装ESLint loader
同样为webpack添加这个loader 当然更准确的说是preloader 为什么这么说呢 代码规范检查肯定是要在代码编译之前来执行的,接下来就来安装这个loader,同时eslint也提供了完整的代码检查规则plugin我们就一同安装下
- npm install eslint eslint-loader --save-dev
- npm install eslint-plugin-import esling-plugin-react eslint-plugin-jsx-a11y --save-dev
- npm install eslint-config-airbnb --save-dev
接下来我们来配置.eslintrc
- {
- "extends":"airbnb",//继承插件的检查规则
- "rules": {
- "comma-dangle": ["error","never"] //修改默认规则,数组最后一项不加逗号 例如([1,2,3,4,]修改为[1,2,3,4])
- }
- }
babel和eslint配置安装完成后,接下来我们要做的是如何把他们结合在一起,首先我们新建一个webpack.config.js文件,我的配置信息如下:
- var path = require('path');
- var htmlWebpackPugins = require('html-webpack-plugin');
- var extracttext = require('extract-text-webpack-plugin');
- //定义常用路径
- var ROOT_PATH = path.resolve(__dirname);
- var APP_PATH = path.resolve(ROOT_PATH,'app');
- var BULID_PATH = path.resolve(ROOT_PATH,'build');
- module.exports = {
- entry:{
- app:path.resolve(ROOT_PATH,'index.jsx')
- },
- output:{
- path:BULID_PATH,
- filename:'bundle_[hash].js'
- },
- devtool:eval-source-map, //开启热更新
- devServer:{
- historyApiFallback:true,
- hot:true,
- inline:true,
- progress:true
- },
- module:{
- rules:[{
- test:/\.css$/,
- use: extracttext.extract({
- fallback: "style-loader",
- use: "css-loader"
- }),
- test:/\.jsx?$/,
- use:'babel-loader'
- }],
- },
- resolve:{
- ['.js','.jsx'] //添加拓展名
- },
- plugins:[
- new htmlWebpackPugins({
- title:'myfirstreact',
- minify:false
- // templateContent:function(){
- // var html = "<div></div>";
- // return html;
- // }
- }),
- new extracttext('styles.css')
- ]
- }
配置文件写好以后开始书写项目的入口文件app.jsx,当然再次之前我们需要引入react库添加进去:
- npm install react-dom --save //因为生产环境需要 所以用--save
最后便开始书写我们的app.jsx:
- import React from 'react';
- import ReactDOM from 'react-dom';
- function App(){
- return (
- <div>
- <h1>helslgggos react</h1>
- </div>
- )
- }
- const app = document.createElement('div');
- document.body.appendChild(app);
至此我们的react基础环境就搭建成功了,执行命令npm run dev 可以看到酷炫的热加载效果 so cool ok今天的分享就到这里了
React+webpack开发环境的搭建的更多相关文章
- react+webpack开发环境配置
react是目前非常热门的前端框架,提倡组件化开发.所谓的组件,简单理解,就是一个独立的页面部件(包括页面模版,样式,逻辑等),它是一个独立的整体. webpack,是一个模块打包工具,其主要功能,就 ...
- React Native开发环境的搭建
我只能说搭建开发环境还是不能相信网上纷乱的博客,还是中文网靠谱. http://reactnative.cn/docs/0.47/getting-started.html 纯粹只是为了记录一下.
- 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)
开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...
- [webpack] 配置react+es6开发环境
写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...
- [转载]Sublime Text 3 搭建 React.js 开发环境
[转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...
- 从零开始配置TypeScript + React + React-Router + Redux + Webpack开发环境
转载请注明出处! 说在前面的话: 1.为什么不使用现成的脚手架?脚手架配置的东西太多太重了,一股脑全塞给你,我只想先用一些我能懂的库和插件,然后慢慢的添加其他的.而且自己从零开始配置也能学到更多的东西 ...
- React Native开发 - 搭建React Native开发环境
移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift.那么对于开发一个App,至少需要两套代码.两个团队.对于公司来说,成本还是有的. ...
- (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...
- react+webpack+babel环境搭建
[react+webpack+babel环境搭建] 1.react官方文档推荐使用 babel-preset-react.babel-preset-es2015 两个perset. Babel官方文档 ...
随机推荐
- 获取CPU系列号,硬盘系
unit Secrity; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- 让php Session 存入 redis 配置方法
首先要做的就是安装redis 安装方法:http://redis.io/download Installation Download, extract and compile Redis with: ...
- SQL查询今天、昨天、7天内、30天
今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...
- JQuery hover toggle事件使用
JQuery hover toggle事件使用: <%@ page language="java" import="java.util.*" pageEn ...
- Pomelo框架
一个典型的多进程MMO运行架构, 如下图所示: pomelo框架的组成如图所示: 架构把游戏服务器做了抽象, 抽象成为两类:前端服务器和后端服务器, 如图: 前端服务器(frontend)的职责: 负 ...
- POJ2185(KMP)
Milking Grid Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 7896 Accepted: 3408 Desc ...
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- java_JDBC(4)
一.Statement import java.sql.*; public class TestJDBC { public static void main(String[] args) { Conn ...
- DBCC CHECKIDENT在 SQL Server修改指定表的当前标识值
强制将当前标识值设为新值 ---最后 0 表示新值从1开始 --注意若前边有内容,最好删除,不然id会重复 DBCC CHECKIDENT ("表名称", RESEED, 0);
- ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存
.NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中.对于分布式缓存,.NET Core提供了针对 ...