Webpack+Babel+React环境搭建

前言

我们知道前端的框架纷繁复杂,各有各的优点。而我们选择使用React作为开发框架的时候,往往会选择Webpack+Babel+React来开始我们的项目。之前也讲过其他的前端框架,如 gulp+webpack,准确的说这不是一个框架,只是项目组织的形式而已。

Webpack+Babel+React环境搭建

安装Webpack

关于Webpack的介绍这里不讲解,大家可以看之前的讲解webpack介绍

npm install webpack -g
  • 1
  • 1

创建一个项目

创建一个名叫learn-webpack项目,并进去项目目录。

mkdir learn-webpack
cd learn-webpack
  • 1
  • 2
  • 1
  • 2

 
接下来我们来创建2个文件:app.js和index.html,我们在也没上输出一个”Hello World”, 
app.js:

document.querySelector('#app').innerHTML = 'Hello World!';
  • 1
  • 1

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Learn-webpack</title>
</head>
<body>
  <div id="app"></div>
  <script src="dist/bundle.js"></script>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

然后在终端执行如下命令:

webpack ./app.js ./dist/bundle.js
  • 1
  • 1

最后执行启动本地的http服务,我们这里用Python

python -m SimpleHTTPServer
  • 1
  • 1

然后我们访问:http://localhost:8000就可以看到效果了。

webpack文件配置

实际上每个项目下都应该包含一个webpack.config.js,用来告诉Webpack需要做些什么,这个我们之前文章也说过。

module.exports = {
  entry: "app.js",
  output: {
    path: __dirname+"/dist",
    filename: "bundle.js"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

接下来我们在终端运行命令,看看是不是和之前输入 webpack ./app.js ./dist/bundle.js 的打包编译结果一样呢,答案是肯定的。

webpack
  • 1
  • 1

注: 
entry:指定打包的入口文件

  • 单个文件打包为单个输出文件,直接写该文件的名字,例如:entry:”main.js”
  • 多个文件打包为单个输出文件,将文件名放进一个数组,例如:entry:[‘main.js’,’xx.js’]
  • 多个文件打包为多个输出文件,将文件名放入一个键字对,例如:entry: {a:’main.js’,b:’xx.js’} 
    output:配置打包结果 
    path为定义输出文件夹,filename为打包结果文件的名称,如果指定打包入口文件为上面的1、2种情况,filename里面直接跟你想输出的文件名。若为第3种情况filename里面需写成[name].文件名.js,filename里面的[name]为entry中的键。

监听变化自动打包

当我们在不停的对代码进行变动的时候,为了不修改一次然后又手动去进行打包一次,可以使用webpack的watch功能。这也算是webpack的一个黑科技,以前做后端的时候必须重新部署,这个是很蛋疼的。

webpack --watch 或者 webpack -w
  • 1
  • 1

或者我们可以直接在配置代码里面把watch设置为true。

module.exports = {
  entry: "app.js",
  output: {
    path: __dirname+"/dist",
    filename: "bundle.js"
  },
  watch: true
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Babel配置

Babel 是一个 JavaScript 编译器。使用它可以将ES6的语法转换为ES5的语法,以便在现在有的环境执行之前的代码。 
首先安装basel。

npm install webpack babel-loader babel-core babel-preset-es2015 --save-dev
  • 1
  • 1

执行安装完成后需要将之前的webpack.config.js修改为:

module.exports = {
  entry: "./app.js",
  output: {
    path: __dirname+"/dist",
    filename: "bundle.js"
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: {
          presets: ['es2015']
        }
      }
    ]
  },
  resolve: {
    extensions: ['','.coffee','.js']
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

现在就能在文件里面以ES6的语法进行代码编写,如在app.js加入:

var func = str => {
  console.log(str);
};
func('Hello Babel!');
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

我们再次运行,如果看到输出,就说明配置成功了。这里有关Loader的知识和配置就不讲究了,大家可以网上补补。

与React结合

终端输入以下代码对react和react-dom进行安装:

npm install react react-dom --save
  • 1
  • 1

安装Babel针对React的预设插件:

npm install babel-preset-react --save-dev
  • 1
  • 1

由于我们增加了react的预设插件,所以需要对webpack.config.js进行修改。将module -> loaders下面的query修改如下:

query: {
    presets: ['es2015','react']
}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

接下来我们创建一个hello.js.

import React from "react";

class Hello extends React.Component{
  render() {
    return (
      <div>
          Hello, World!
      </div>
    )
  }
}

export default Hello;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在app.js做一下配置:

import React from "react";
import ReactDOM from "react-dom";
import Hello from "./hello";

ReactDOM.render(
  <Hello />,
  document.querySelector('#app')
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

哈哈哈,这里如果大家做过React Native的,这里是不是感觉很亲切,只不过React Native还是用的npm在做管理。我们同样启动服务在看看,如果看到Hello World!就说明环境配置成功。

时间: 2024-09-08 07:02:41

Webpack+Babel+React环境搭建的相关文章

React Native搭建iOS开发环境_IOS

一.写在前面 1. 什么是React-Native? React-Native是:Facebook 在2015年初React.js技术研讨大会上公布的一个开源项目.支持用开源的JavaScript库React.js来开发iOS和Android原生App.初期仅支持iOS平台,同年9月份,该开源项目同时支持Android平台. React Native的原理是:在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染,比如以<View>取代<div>,以&

Redux教程1:环境搭建,初写Redux

[序] 如果将React比喻成士兵的话,你的程序还需要一位将军,去管理士兵(的状态),而Redux恰好是一位好将军,简单高效: 相比起React的学习曲线,Redux的稍微平坦一些:本系列教程,将以"红绿灯"为示例贯穿整个demo,希望能让用户快速理解&学习Redux: 强烈推荐 Redux 中文文档,本redux教程所有的材料和思路都来源于此: 这个系列拆分成3篇文章,最后获得的效果图为: (这个是gif图,如果没动画请点击在新窗口打开) 红绿灯初始状态是 绿灯5s,继而循环

前端单元测试之Karma环境搭建

前言 在前端开发中,测试常常是被忽略的一环.因此最近在研究前端自动化测试框架Karma,把个人的学习过程分享出来,希望对大家有帮助. 什么是Karma? Karma是由Google团队开发的一套前端测试运行框架.它不同于测试框架(例如jasmine,mocha等),运行在这些测试框架之上.主要完成一下工作: Karma启动一个web服务器,生成包含js源代码和js测试脚本的页面; 运行浏览器加载页面,并显示测试的结果; 如果开启检测,则当文件有修改时,执行继续执行以上过程. Karma的安装配置

React-Native尝鲜计划-环境搭建及 hello world

React Native 刚被 Face Book 开源不久,持续引起关注."learn once,write anywhere" 是每个开发者的追求.目前国内关于 react native 学习资料不多,为了尝鲜,从本篇我文章开始,我决定来学习 React-Native.目前 React 支持 Android 和 iOS 的跨平台开发,这系列文章都将以 Android 为主要阵地,既然是跨平台,其实是大同小异的.本章主要学习两部分内容:一. 环境搭建,二.运行第一个 demo 页面:

Vue.js开发环境搭建_javascript技巧

一.简介 Vue.js 是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue.js是一个MVVM模式的框架,如果读者有angul

Vue2移动端开发环境搭建

本文给出基于 Vue2 的移动端环境搭建,移动端大家更多想到的是响应布局,我们根据不同大小的屏幕进行适配,当然少不了我们的重头戏 rem,移动端相比 pc 端就没什么特别的了. 我会一步一步带领大家进入 Vue2 的世界,拥抱变化,熟悉 Vue 1.x 的根据文档可以迅速掌握 2.0,因为其中大约 90% 的语法是重复的.2.0 更多是基于框架本身的优化,整体设计思想是不变的. vue-cli 首先还是介绍我们的脚手架工具,因为它能让我们省去大部分的配置时间,这里只给出简单步骤,保证你的命令顺利

基于Vue2的移动端开发环境搭建详解_javascript技巧

前言 vue2.0发布了,那么还在用vue1.x的你,是不是也有所心动呢?下面这篇文章就给大家详细介绍基于Vue2的移动端开发环境搭建的详细步骤,下面来一起看看吧. 一.vue-cli 首先还是介绍我们的脚手架工具,因为它能让我们省去大部分的配置时间,这里只给出简单步骤,保证你的命令顺利运行的前提是安装最新版本的 node 和 npm,这里不赘述升级流程 全局安装 vue-cli npm install vue-cli -g 借此也全局安装一个 webpack npm install webpa

PHP开发环境搭建详细教程

     首先你需要安装Apache Server,这里以当前最新版Apache Server2.4为例进行说明,可惜官网并没有提供最新版的msi安装包,连编译后的binary二进制压缩包都没提供,不过我已经编译并上传到我的百度网盘,下载地址如下:       Apache Server2.4最新版安装包   下载下来后直接解压到任意目录,如图:  然后你需要安装Apache Server系统服务,先cd 到apacher server2.4/bin下,然后执行如下命令: Java代码   ht

【物联网】QCA4010开发环境搭建(二)(解决WIN10下不能驱动问题)

更多资料,请参考:中电港论坛 http://bbs.cecport.com/forum.php?mod=forumdisplay&fid=64&page=1 感谢中电港,低价QCA4010开发板入手,终于腾出时间来研究一下这个高大上的开发板 4010与4004一样,内部集成了Tensilica Xtensa处理器,主频可达130MHz.Xtensa处理器是Tensilica公司推出的一个可自由装组.可弹性扩张,并可以自动合成的处理器核心,它的指令集构架 (ISA) 拥有专利权,32位处理器