React +ES6 +Webpack入门

React +ES6 +Webpack入门

React已成为前端当下最热门的前端框架之一 , 其虚拟DOM和组件化开发让前端开发更富灵活性,而Webpack凭借它异步加载和可分离打包等优秀的特性,更为React的开发提供了便利。其优秀的特性不再赘述。本文将详细的记录react babel webpack的环境搭建,以及搭建的过程中遇到的一些坑。

一、新建React项目

1、如图为新建react项目结构,其中 entry.js放置react入口代码,index.js放置react组件代码,assets文件是webpack打包之后生成文件的存放地址

由于react代码需要jsx来写,所以我们修改编辑器里的配置。我使用的是mac版的webstorm,在如下图地方修改jsx提示配置

首先你得安装npm 同时命令行输入

npm install
npm init

新建node_modules

2、输入如下命令安装react模块

npm i --save react

由于react升级后把reactDOM独立出来 ,所以我们还需要安装react-dom

npm install react-dom --save-dev

具体react代码在安装完webpack后介绍

二、安装webpack

1、什么是Webpack?

事实上它是一个打包工具,而不是像RequireJS或SeaJS这样的模块加载器,通过使用Webpack,能够像Node.js一样处理依赖关系,然后解析出模块之间的依赖,将代码打包

2、安装webpack

全局安装

sudo npm install -g webpack

本项目安装

npm install webpack --save-dev

3、webpack配置

每个项目下都必须配置有一个 webpack.config.js ,它的作用如同常规的 gulpfile.js/Gruntfile.js ,就是一个配置项,告诉 webpack 它需要做什么。

在根目录新建js文件 webpack.config.js

文件内容大概如下

/**
 * Created by mac on 16/7/14.
 */
var webpack = require(‘webpack‘);
var path = require(‘path‘);

module.exports = {
    //页面入口文件配置
    entry: {
        index: [
            ‘webpack-dev-server/client?http://localhost:5000‘,
            ‘webpack/hot/only-dev-server‘,
            ‘./js/entry.js‘
        ]
    },
    //入口文件输出配置
    output: {
        path: __dirname + ‘/assets/‘,
        filename: ‘bundle.js‘
    },
    module: {
        //加载器配置
        loaders: [
            {
                test: /\.css$/,
                loader: ‘style-loader!css-loader‘
            },

            {
                test: /\.js$/,
                loader: ‘jsx-loader?harmony‘
            },
            {
                test: /\.(png|jpg)$/,
                loader: ‘url-loader?limit=8192‘
            },
            {
                test: /\.js|jsx$/,
                loaders: [‘react-hot‘, ‘babel?presets[]=es2015,presets[]=react,presets[]=stage-0‘],
                include: path.join(__dirname, ‘js‘)
            }
        ]
    },
    //其它解决方案配置
    resolve: {
        extensions: [‘‘, ‘.js‘, ‘.json‘, ‘.scss‘]
    },
    //插件项
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NoErrorsPlugin()
    ]
};
这里对Webpack的打包行为做了配置,主要分为几个部分:

entry:指定打包的入口文件,每有一个键值对,就是一个入口文件

output:配置打包结果,path定义了输出的文件夹,filename则定义了打包结果文件的名称

resolve:定义了解析模块路径时的配置,常用的就是extensions,可以用来指定模块的后缀,这样在引入模块时就不需要写后缀了,会自动补全

module:定义了对模块的处理逻辑,这里可以用loaders定义了一系列的加载器,以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。比如这里定义了凡是 .js 结尾的文件都是用 babel-loader 做处理,而 .jsx 结尾的文件会先经过 jsx-loader 处理,然后经过 babel-loader 处理。当然这些loader也需要通过 npm install 安装

plugins: 这里定义了需要使用的插件,这里使用了react-hot会在之后介绍

安装loader示例

npm install jsx-loader --save-dev

在我的webpack.config文件中,文件入口为 js/entry.js,entry中的index数组为之后使用的react-hot配置,若不使用插件则为

entry: {
        index: ‘./js/entry.js‘
    },

打包后的出口为assets/bundle.js

三、安装babel

1、为什么babel

能够实现 ES6 到 ES5 的代码转换多亏了 Babel (以前叫 6to5) 以及 Traceur 之类的项目。这些转换器 (更准确地说是源代码到源代码的编译器) 可以把你写的符合 ECMAScript 6 标准的代码完美地转换为 ECMAScript 5 标准的代码,并且可以确保良好地运行在所有主流 JavaScript 引擎中。

2、安装babel

npm install -g babel

完成后可用命令sudo babel --help查看是否安装成功

Babel提供babel-cli工具,用于命令行转码。

npm install babel-cli --save-dev

如果某些代码需要调用Babel的API进行转码,就要使用babel-core模块。

npm install babel-core --save-dev

Babel的配置文件是.babelrc,存放在项目的根目录下。使用Babel的第一步,就是配置这个文件。 首先新建.babelrc文件

文件默认如下

{
  "presets": [],
  "plugins": []
}

presets字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。

# ES2015转码规则
$ npm install --save-dev babel-preset-es2015

# react转码规则
$ npm install --save-dev babel-preset-react

# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3

之后在.babelrc文件中加入配置

{
    "presets": [
      "es2015",
      "react",
      "stage-0"
    ],
    "plugins": []
  }

这时在webpack.config文件中loader中加入配置,让打包时加载babel

           {
             test: /\.js|jsx$/, loaders: [‘babel?presets[]=es2015,presets[]=react,presets[]=stage-0‘]
            },

同时安装babel-loader

npm install babel-loader --save-dev

注意!这里presets的顺序要和.babelrc的顺序一致

未完~

时间: 2024-10-27 10:24:28

React +ES6 +Webpack入门的相关文章

reactjs学习一(环境搭配react+es6+webpack热部署)

reactjs学习一(环境搭配react+es6+webpack热部署) reactjs今年在前端圈里很火,用了三四个月,感觉确实很适合前端开发人员使用,值得深入一下,所以这里记录一下我简单的学习过程,首先是react的环境,由于现在react的新版本已经很稳定了,所以推荐使用es6+webpack来搭建开发环境. 首先,安装nodejs,略过,安装gitbrach,略过,直接搜索到相对应软件的官网,下载最新正式版本的软件,然后就下一步下一步完成安装就可以了,很简单的过程,但是不容忽略,如有问题

React+ES6+Webpack深入浅出

React已成为前端当下最热门的前端框架之一 , 其虚拟DOM和组件化开发让前端开发更富灵活性,而Webpack凭借它异步加载和可分离打包等优秀的特性,更为React的开发提供了便利.其优秀的特性不再赘述.本文将详细的记录react babel webpack的环境搭建,以及搭建的过程中遇到的一些坑. 一.新建React项目 1.如图为新建react项目结构,其中 entry.js放置react入口代码,index.js放置react组件代码,assets文件是webpack打包之后生成文件的存

react+es6+webpack环境搭建以及项目入门

前言:拖了这么久,小菜鸟终于开始正式应用react,和es6来开发项目了.之前超喜欢同学的一个博客风格,这里贴一下地址:https://iwenku.net/,PC端是他很久之前做的,最近他重新做了一下移动端的.看完之后,我内心也勾勒出了一个自己的博客,所以开始正式搭建自己的博客作为项目练手吧. 一,搭建环境 1,安装node 第一步的话首先得确定安装好了node的环境,这个毋庸置疑哈.国外的官网的话好像得FQ,方正我就在node中文网上下载的.(http://nodejs.cn/)安装过程就不

webpack + react + es6, 并附上自己碰到的一些问题

最近一直在学react,react的基础部分已经学得差不多了,然而自己并没有做详细的记录,有兴趣的同志可以参考阮一峰老师的教程,个人觉得挺不错的,链接如下:https://github.com/ruanyf/react-babel-webpack-boilerplate, 学完了基础就想倒腾倒腾,webpack整合react加es6. 1.webpack + react + es6 1.1 新建项目 项目目录如下 具体的内容就不解释了,大家应该都看得懂 1.2 配置webpack 配置文件如下

webpack+react+es6开发模式

一.前言 实习了两个月,把在公司用到的前端开发模式做个简单的整理.公司里前端开发模式webpack+react+redux+es6,这里去掉了redux. webpack, react, redux等学习网址:http://www.cnblogs.com/hujunzheng/p/5405780.html 二.简单的步骤条组件 1.通过react自定义的组件进行模拟   注:只是用了react,用到相关react的js请到 https://github.com/hjzgg/webpack-rea

webpack React+ES6

webpack踩坑之路——构建基本的React+ES6项目 webpack是最近比较火的构建工具,搭配上同样比较火的ReacJS与ES6(ES2015)一定是现在很多潮流 programmer 的追求. 废话不多,下面就就看下如何从0搭起我们的构建工具. 安装 全局安装webpack,如果安装后还是提示没有webpack commond,可以尝试通过超级管理员身份安装. $ npm install webpack -g $ sudo npm install webpack -g  或者在项目里进

webpack学习(五)—webpack+react+es6

如果你看过webpack学习系列的前一个文章,接下来做的东西会比较简单 :webpack学习(四)- webpack-dev-server react发展的很快,现在大部分开发react相关的项目,都会用到这个组合:webpack+react+es6 还是以一个项目举例,项目中的package.json是生成的,"devDependencies"都是自己安装加入,如果拷贝网上的资料,可以npm install直接生成.而为了一探react的具体开发流程,还是自己一个个安装比较好. 项目

sublime 玩转react+es6

Sublime3玩转ES6+ReactJs 标签: JavaScriptreact 2016-08-22 18:04 5751人阅读 评论(0) 收藏 举报 分类: javasctipt(61) react(1) sublime(2) 开发工具(3) 原文 (http://ued.fanxing.com/emmet/) 前言 Webpack+React+ES6无疑是目前最火热的开发模式了,为了与时俱进,开始对它进行探索和学习.工欲善其事必先利其器,众所周 知,ES6和JSX都是新的语法,而目前的

webpack入门--前端必备

webpack入门--前端必备 什么是 webpack? webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理.我们可以直接使用 require(XXX) 的形式来引入各模块,即使它们可能需要经过编译(比如JSX和sass),但这不用我们理会,因为 webpack 有着各种健全的加载器(loader)在处理这些事情. 为什么要使用 webpack? 很简单的一个道理,难道写react的同学会不用它