• H5gulp版非前后的分离环境


    由于公司不同意我们使用前后端分离进行开发,硬是要我们和PHP混合在一起,所以用gulp搭建了一个简单的手脚架来用

    目录结构:

    主要是gulpfile.js里的内容

    var gulp  = require('gulp'),
        px2rem = require('gulp-px3rem'),//移动浏览器适配
        sass = require('gulp-sass'),//sass转换
        cssmin = require('gulp-cssmin'),//css压缩
        uglify = require('gulp-uglify'),//js压缩
        inline = require('gulp-inline'),//文件内联
        rename = require('gulp-rename'),//重命名文件
        browserSync = require('browser-sync').create(),//browser自动刷新
        reload = browserSync.reload,
        replace = require('gulp-batch-replace');//文件内容替换
    
    function swallowError(error) {
        // If you want details of the error in the console
      console.error(error.toString())
    
      this.emit('end')
    }
    //出来sass文件转换rem适配浏览器
    gulp.task('sass', function() {
        return gulp.src(['./src/common/css/*.scss','./src/css/*.scss'])//多文件合并成一个
            .pipe(sass({outputStyle: 'compact',sourceComments:false})).on('error', swallowError)
            .pipe(px2rem({
                baseDpr: 2,             // base device pixel ratio (default: 2)
                threeVersion: false,    // whether to generate 3x version (default: true)
                remVersion: true,       // whether to generate rem version (default: true)
                remUnit: 75,            // rem unit value (default: 64)
                remPrecision: 6  
            })).on('error', swallowError)
            .pipe(gulp.dest('./build/css/'))
    })
    //js压缩
    gulp.task('uglify', function() {
      return gulp.src('./src/js/**/*.js')
            .pipe(uglify({
                comporess : false,
                preserveComments : 'license'
            })).on('error', swallowError)
            .pipe(gulp.dest('./build/js'))
    })
    
    //把需要的 script link 内容打包到页面里面(内联)
    gulp.task('inline', function() {
        gulp.src(['./pages/**/*.html'])
            .pipe(inline({
                js: uglify,
                css: cssmin,
                disabledTypes: ['svg', 'img'] // Only inline css files 
              }))
            .pipe(gulp.dest('./dest'));
    });
    
    gulp.task('watches' ,['sass'], function() {
       // 从这个项目的根目录启动服务器
        browserSync.init({
            server: {
                baseDir: "./",
            },
            port: 4444,
            open: "local",
            online: false
        });
     //监控文件变化自动刷新 gulp.watch(
    './src/js/**/*.js', ['uglify']).on("change", browserSync.reload); gulp.watch('./src/css/*.scss', ['sass']).on("change", browserSync.reload); gulp.watch('./pages/**/*.html').on("change", browserSync.reload); }) gulp.task('default', ['sass','uglify']) //复制打包后的css到对应目录 gulp.task('cloneCss',['sass'],function(){ gulp.src(['./build/css/*.css']) .pipe(rename(function(path){ path.basename = path.basename.replace('.debug',''); })) .pipe( gulp.dest('dist/css/')) }) //复制js到指定目录 gulp.task('cloneJs',function(){ gulp.src(['./src/js/**/*.js']) .pipe( gulp.dest('dist/js/')) }) //复制公用文件到指定目录 gulp.task('cloneCommonJs',function(){ gulp.src(['./src/common/js/*.js']) .pipe( gulp.dest('dist/js/common/')) }) //复制图片到对应目录 gulp.task('cloneImages',function(){ gulp.src(['./src/images/*']) .pipe( gulp.dest('dist/images/')) }) 复制html文件到对应目录 gulp.task('cloneHtml',function(){ gulp.src(['./pages/**/*.html']) .pipe( gulp.dest('dist/')) }) //修改文件内的路径配置 var replaceThis = [ ['../../build/css/', '../../css/'], ['../../src/js/', '../../js/'], ['../../src/common/js/', '../../js/'], ['../../src/images/','../../images/'], ['debug.css','css'] ]; //执行修改文件内路径 gulp.task('replace', function() { gulp.src('./dist/**/*.html') .pipe(replace(replaceThis)) .pipe(gulp.dest('./dist')); }); //打包文件给后端 gulp.task('build',['cloneCss','cloneCommonJs','cloneJs','cloneImages'], function () { gulp.src(['./pages/**/*.html']) .pipe(replace(replaceThis)) .pipe(gulp.dest('./dist/pages')); });
  • 相关阅读:
    调用Config.ini类
    winform用AForge拍照功能
    winform导出csv
    winform导出excel
    net里面using的使用
    DBNULL与null的区别
    mui app在线更新
    redux-thunk初步使用
    初步使用Web Notification 实现浏览器消息通知
    ios唤起键盘后,页面不收回导致元素错位的问题.(譬如固定在底部的自定义键盘等)
  • 原文地址:https://www.cnblogs.com/lichuntian/p/9726364.html
Copyright © 2020-2023  润新知