1.gulp基本配置:

var gulp = require('gulp'),
watch = require('gulp-watch'),
babel = require('gulp-babel');
var browserify = require('gulp-browserify');
var SourceMap = require('gulp-sourcemaps');
var SourceMapSupport = require('gulp-sourcemaps-support');
gulp.task('react', () => {
gulp.src('index.js')
.pipe(SourceMap.init()) //sourcemap只是为了生成代码资源的map
.pipe(babel({
presets: ['es2015', 'es2016', 'es2017', 'stage-0', 'react'],
plugins: ['transform-decorators-legacy']
})) //这里编译es6代码,包括编译react模板
.pipe(browserify({
insertGlobals : true,
debug : !gulp.env.production
})) //browserify 的作用就是把require资源从node_modules 里拿出来,然后打包进去到输出的js,如果没有这个插件,那么你不能看到import进来的东西,import的东西没有被打包进去
.pipe(SourceMap.write('.'))
.pipe(gulp.dest('build'))
});
gulp.task('default', () => {
return watch('./index.js', function() {
gulp.run('react');
});
});

2.优化 

var gulp = require('gulp'),
watch = require('gulp-watch'),
babel = require('gulp-babel');
var envify = require('gulp-envify');
var browserify = require('gulp-browserify');
var SourceMap = require('gulp-sourcemaps');
var uglify = require('gulp-uglifyjs');
var SourceMapSupport = require('gulp-sourcemaps-support');
gulp.task('react', () => {
var environment = {
NODE_ENV: 'production'
};
gulp.src('index.js')
.pipe(SourceMap.init())
.pipe(babel({
presets: ['es2015', 'es2016', 'es2017', 'stage-0', 'react'],
plugins: ['transform-decorators-legacy']
}))
.pipe(browserify({
insertGlobals: true,
debug: !gulp.env.production,
transformKey: 'production'
}))
.pipe(envify(environment)) //加入这个插件可以修改代码中的环境等于production
.pipe(uglify())
.pipe(SourceMap.write('.'))
.pipe(gulp.dest('build'))
});
gulp.task('default', () => {
return watch('./index.js', function() {
gulp.run('react');
});
});

  

gulp 编译es6 react 教程 案例 配置的更多相关文章

  1. gulp 编译es6 探究

    1.gulp配置: var gulp = require('gulp') var fs = require("fs") var babelify = require('babeli ...

  2. webpack4 系列教程(二): 编译 ES6

    今天介绍webpack怎么编译ES6的各种函数和语法.敲黑板:这是webpack4版本哦, 有一些不同于webpack3的地方. >>> 本节课源码 >>> 所有课 ...

  3. 使用gulp和bable实现实时编译ES6代码

    这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...

  4. guulp配置编译ES6

    下面是gulp的配置文件,gulp具体使用点击查看 首先全局安装下 cnpm install gulp -g gulpfile.js  gulp配置文件 var gulp = require(&quo ...

  5. gulp打包js多个文件夹并压缩混淆,编译ES6语法,及多个import依赖由一个入口打包成一个cdn

    感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件g ...

  6. webpack打包和gulp打包工具详细教程

    30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...

  7. 使用gulp 进行ES6开发

    使用gulp 进行ES6开发 一.新建项目 项目结构如下: /app -- /js -- /css /dist -- /js -- /css -- index.html gulpfile.js 我们的 ...

  8. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  9. gulp编译less简单demo

    写个简单的less.watch任务的demo分享———— 1.准备: 安装全局node.npm,这个教程很多不作详细介绍: 安装全局gulp npm install -g gulp 新建getstar ...

随机推荐

  1. (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

    问题说明80端口被占用,用netstat -nlp |grep :80命令看看有什么进程占用了80端口,发现是httpd进程. 没想到安装了两个apache,我安装apache2.4的时候删除了2.2 ...

  2. LoadRunner内部介绍以及常见问题

    Tools Recording Options 接下来我们挨个看一下里面的东东以及区别 General(通常的) Script,不用修改,是脚本的语言,我们一般都是基于 C 语言的 Protocols ...

  3. SpringMVC请求体参数处理问题

    如果请求定义为application/json格式,则要用Spring MVC中@RequestBody参数才能接受(用@RequestParam参数接受会报400错误),但SpringMVC的@Re ...

  4. 深入理解 Python yield

    https://blog.csdn.net/lftaoyuan/article/details/78915518 python2和python3是不兼容的,通篇环境都是python3.6 简单的yie ...

  5. petalinux--执行子进程“oe-gnome-terminal-phonehome”失败(没有那个文件或目录)(转)

    简介 使用petalinux配置kernel时候提示 “Failed to execute child process “oe-gnome-terminal-phonehome” (No such f ...

  6. Qt中窗口退出事件

    窗口右上角的X按键会导致其在不给出任何提示的情况下直接退出, 当点击右上角的x按键时,会触发Qt中的一个事件处理函数:void QWidget::closeEvent ( QCloseEvent * ...

  7. Spring Cloud(Dalston.SR5)--Hystrix 断路器-合并请求

    在 Spring Cloud 中可以使用注解的方式来支持 Hystrix 的合并请求,缓存与合并请求功能需要先初始化请求上下文才能实现,因此,必须实现 javax.servlet.Filter 用于创 ...

  8. pandas初识

    pandas初识 1.生成DataFrame型的数据 import pandas as pd import numpy as np dates = pd.date_range('20130101',p ...

  9. EXPLAIN执行计划中要重点关注哪些要素

    MySQL的EXPLAIN当然和ORACLE的没法比,不过我们从它输出的结果中,也可以得到很多有用的信息. 总的来说,我们只需要关注结果中的几列: 列名 备注 type 本次查询表联接类型,从这里可以 ...

  10. 【Java安装】配置环境变量

    添加环境变量: JAVA_HOME D:\Program Files\Java\jdk1.8.0_131 classpath: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\to ...