zoukankan      html  css  js  c++  java
  • gulp 安装笔记

    1.全局安装cnpm(淘宝的npm国内镜像),gulp,rimraf(卸载用插件)
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    cnpm install -g rimraf gulp

    项目下新建package.json和gulpfile.js。

    打开package.json添加 {}  花括号,保存。

    2.gulp插件(每个项目都要安装一次)
    cnpm install --save-dev gulp gulp-replace gulp-less gulp-minify-css browser-sync gulp-react gulp-babel babel-preset-es2015 babel-polyfill babel-preset-stage-0 gulp-webpack

    • replace替换文字插件
    • less编译less文件插件
    • minify-css压缩css插件
    • browser-sync自动重载浏览器插件
    • react编译react插件
    • babel编译ES插件
    • babel-preset-es2015将ES6编译为ES5
    • gulp-webpack编译模块化文件
    • babel-preset-stage-0
    • babel-polyfill垫片库

    可能需要安装的babel转ES5插件:

    cnpm install --save-dev babel-plugin-transform-es2015-duplicate-keys babel-plugin-transform-es2015-arrow-functions babel-plugin-transform-es2015-block-scoped-functions babel-plugin-transform-es2015-modules-amd babel-plugin-transform-es2015-modules-commonjs babel-plugin-transform-es2015-object-super babel-plugin-transform-es2015-template-literals babel-plugin-check-es2015-constants


    3.卸载方法
    cmd指向gulp根目录
    rimraf -rf node_modules

    4.gulpfile.js实例

    var gulp = require("gulp");
    var replace = require("gulp-replace");
    var browserSync = require("browser-sync");
    var less = require("gulp-less");
    var minCss = require('gulp-minify-css');
    var babel = require('gulp-babel');
    var webpack = require('gulp-webpack');
    var react = require('gulp-react')
    
    //路径存储变量
    var srcPath = 'src/';
    var distPath = 'dist/';
    var notUgly = [ srcPath + 'js/*.js', "!" + srcPath + 'js/jquery.js'];
    
    //替换文件内容
    gulp.task('replace', function() {
        return gulp.src(srcPath + '*.php')
            //将src目录下所有php文件的123替换成321
            .pipe(replace('123','321'))
            .pipe(gulp.dest(distPath));
    }); 
    
    //编译ES6语法的react文件
    gulp.task('reactify', function(){
        return gulp.src(srcPath + 'js/*.jsx')
            .pipe(react())
            .pipe(babel({
                presets: ['es2015']
            }))
            .pipe(gulp.dest(distPath + 'js/'))
            .pipe(webpack({
                externals: {
                    'react': 'React',
                    'react-dom': 'ReactDOM'
                },
                output:{
                filename:"ui.js",
                }
            }))
            .pipe(gulp.dest(distPath + 'js/'))
            .pipe(browserSync.reload({
              stream: true
            }))
    });
    
    //编译ES6
    gulp.task('es6', function(){
        return gulp.src(srcPath + 'js/**/*.es6')
        //匹配js文件夹下所有ES6文件(包括子文件夹)
            .pipe(babel({
                presets: ['es2015']
            }))
            .pipe(gulp.dest(srcPath + 'es6/'))
            .pipe(webpack({
                output:{
                    filename:"es6.js",
                }
            }))
            .pipe(gulp.dest(distPath + 'js/'))
            .pipe(browserSync.reload({
              stream: true
            }))
    });
    
    
    
    //编译压缩less文件
    gulp.task('less', function(){
        return gulp.src(srcPath + 'less/*.less')
            .pipe(less())
            .pipe(minCss)
            .pipe(gulp.dest(distPath + 'css'))
            .pipe(browserSync.reload({
              stream: true
            }))
    });
    
    //导出html并重载浏览器
    gulp.task('html', function(){
        return gulp.src(srcPath + '*.php')
            .pipe(gulp.dest(distPath))
            .pipe(browserSync.reload({
              stream: true
            }))
    });
    
    //自动重载浏览器,本地开启了服务器就修改端口号,路径修改到生产环境
    gulp.task('browserSync', function() {
        browserSync({
            proxy: "local.dev",
            proxy: "localhost:8080",
            proxy: "localhost/wechat/dist",
        })
    });
    
    //监听各文件,改动后执行后面的[任务],完成任务后执行browserSync任务
    gulp.task('watch', ['browserSync'],function(){
        gulp.watch(srcPath + 'js/*.jsx', ['reactify']);
        gulp.watch(srcPath + 'js/**/*.es6', ['es6']);
        gulp.watch(srcPath + 'less/*.less', ['less']);
        gulp.watch(srcPath + '*.php', ['html']);
    });
    
    gulp.task("default", ['watch'], function(){});
    

      

    cmd指向gulpfile.js的文件夹,然后gulp watch 开始监听。

    5.gulp.js文件使用es6

    用编辑器保存一个.babelrc文件(没有名字只有后缀的文件),粘贴配置信息并保存。

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

    文件开头加上

    'use strict'    
    import "babel-polyfill";
    

    gulp.js重命名为gulp.babel.js

    这样就可以在gulp中使用es6

  • 相关阅读:
    容器适配器————priority_queue
    容器适配器————queue
    容器适配器之总结
    序列式容器之总结
    序列式容器————forward_list
    序列式容器————list
    序列式容器————dequeue
    13.软件项目管理与敏捷方法——如何变更职责笔记
    10.软件项目管理与敏捷方法——沟通管理笔记
    09.软件项目管理与敏捷方法——人力资源管理笔记
  • 原文地址:https://www.cnblogs.com/NKnife/p/6251560.html
Copyright © 2011-2022 走看看