美文网首页
gulp配置指南

gulp配置指南

作者: web_柚子小记 | 来源:发表于2019-01-10 15:55 被阅读0次

一、解决gulp编译报错后中断问题

vscode设置自动保存后,在开发过程中经常由于使用了gulp.watch经常会导致编译中断

gulp-plumber插件可以解决html及js的报错中断问题

安装: npm install -D gulp-plumber
使用:

var plumber = require('gulp-plumber');
gulp.src(src_dir + "/scripts/**/*.js")
        .pipe(plumber())  //优先使用plumber()
        .pipe(jshint())
        .pipe(jshint.reporter('default'));

gulp.src(dist_dir + "/templates/**/*.html")
        .pipe(plumber())
        .pipe(htmlmin({
            collapseWhitespace: true
        }))
        .pipe(templateCache("tpl.min.js", {
            module: "xt.templates",
            standalone: true
        }))
        .pipe(gulpif(isUglify, uglify()))
        .pipe(gulp.dest(dist_dir + "/scripts/"));
效果: image.png
针对sass文件的编译中断问题,需要结合gulp-sass和gulp-plumber一起使用

安装:npm install -D gulp-sass
使用:

var plumber = require('gulp-plumber');
var sass = require('gulp-sass');
gulp.src([src_dir + "/styles/toastr.scss"])
        .pipe(plumber())
        .pipe(sass({ errLogToConsole: true }))
        .pipe(minifyCss())
        .pipe(concat("toastr.min.css"))
        .pipe(gulp.dest(dist_dir + "/styles/"));

效果:

image.png 参考:https://github.com/floatdrop/gulp-plumber/issues/32

二、环境变量配置

项目上线,需要明确的区分生产环境和开发环境

  1. 创建本地配置文件和生产环境配置文件分别为config.dev.json和config.prd.json在项目的根目录下面
    config.dev.json例:
{
    "path": {
        "THIRD_WEB": "https://localhost:8081"  
    }
}
  1. 安装gulp-preprocess:
    npm install -D gulp-preprocess

  2. 设置package.json脚本

"scripts": {
    "serve": "gulp local --env=local",
    "build": "gulp default --env=production"
  }
  1. gulpfile.js配置:
var runSequence = require('run-sequence');
var preprocess = require('gulp-preprocess');
var browserify = require('browserify');

var CONTEXT_PATH = argv.env == 'local' ? require('./config.dev.json') : require('./config.prd.json');

var config = {
     path: CONTEXT_PATH.path
 };

gulp.task('htmls', function () {
    return gulp.src( "./htmls/**/*.html")
        .pipe(preprocess({
            context: config.path,
        }))
        .pipe(gulp.dest("../"));
});

gulp.task('scripts',  function () {
    return browserify("./scripts/app.js", { transform: [envify] })
        .bundle()
        .pipe(source("app.min.js"))
        .pipe(preprocess({
            context: config.path,
        }))
        .pipe(gulp.dest("../scripts/"));
});

gulp.task('local', function (cb) {
    process.env.NODE_ENV = 'local';
    runSequence("htmls", ''scripts'', cb);
});
  1. 在html中的使用规则如下
<script src="<!-- @echo THIRD_WEB -->/jquery.min.js"></script>
  1. 在js中的使用规则如下
window.location.href = '/* @echo THIRD_WEB */'

相关文章

  • gulp配置指南

    一、解决gulp编译报错后中断问题 vscode设置自动保存后,在开发过程中经常由于使用了gulp.watch经常...

  • gulp压缩

    先安装gulp // gulp指南链接 https://www.kancloud.cn/thinkphp/gulp...

  • sass/git/gulp

    sass用法指南sass语法 常用git指令git-book gulp详细入门教程gulp使用指南segmentf...

  • gulp的简单使用

    gulp使用流程:安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gu...

  • gulp安装方法,ionic native developer

    入门指南 1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发...

  • 二、gulp+electron 自动更新

    不用gulp electron-reload gulp 1、必要依赖 2、gulpfile.js 3、配置全局配置...

  • Gulp构建多页面项目

    全局安装gulp 然后本地在安装一个gulp添加到配置文件 然后就是配置一些gulp的插件 新增然后配置gulpf...

  • gulp 配置及插件体系

    gulp 配置及插件体系 gulp-autoprefixer 的browsers参数详解 (传送门): gulp...

  • gulp压缩js文件

    1、安装gulp 2、安装gulp-uglify 3、配置gulpfile.js 4.gulp XXX(task名称)

  • gulp入门

    1.gulp环境配置 阮一峰gulp教程 2.gulp常用的方法 1.gulp.task -- 定义任务 2.gu...

网友评论

      本文标题:gulp配置指南

      本文链接:https://www.haomeiwen.com/subject/giyarqtx.html