zoukankan      html  css  js  c++  java
  • Gulp前端构建前端开发环境

    一、下载并安装Node.js

    C:UsersAdministrator>node -v
    v11.0.0
    

    二、安装npm,安装淘宝cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    C:UsersAdministrator>cnpm -v
    cnpm@6.0.0 (C:UsersAdministratorAppDataRoaming
    pm
    ode_modulescnpmlibparse_argv.js)
    npm@6.5.0 (C:UsersAdministratorAppDataRoaming
    pm
    ode_modulescnpm
    ode_modules
    pmlib
    pm.js)
    node@11.0.0 (C:Program Files
    odejs
    ode.exe)
    npminstall@3.17.0 (C:UsersAdministratorAppDataRoaming
    pm
    ode_modulescnpm
    ode_modules
    pminstalllibindex.js)
    prefix=C:UsersAdministratorAppDataRoaming
    pm
    win32 x64 10.0.17763
    registry=https://registry.npm.taobao.org
    

    三、全局安装gulp

    C:UsersAdministrator>cnpm install --global gulp
    

    四、局部安装gulp

    切换到项目的根目录,局部安装是安装到你项目的根目录

    npm install gulp --save-dev
    F:DevSpaceGulp>npm install gulp --save-dev
    npm WARN saveError ENOENT: no such file or directory, open 'F:DevSpaceGulppackage.json'
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN enoent ENOENT: no such file or directory, open 'F:DevSpaceGulppackage.json'
    npm WARN Gulp No description
    npm WARN Gulp No repository field.
    npm WARN Gulp No README data
    npm WARN Gulp No license field.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modulesfsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
    
    + gulp@4.0.0
    added 318 packages from 217 contributors and audited 6376 packages in 26.887s
    found 0 vulnerabilities
    

    五、项目初始化,生成package.json

    F:DevSpaceGulp>npm init -y
    This utility will walk you through creating a package.json file.
    It only covers the most common items, and tries to guess sensible defaults.
    
    See `npm help json` for definitive documentation on these fields
    and exactly what they do.
    
    Use `npm install <pkg>` afterwards to install a package and
    save it as a dependency in the package.json file.
    
    Press ^C at any time to quit.
    package name: (gulp)
    version: (1.0.0)
    description:
    entry point: (gulpfile.js)
    test command:
    git repository:
    keywords:
    author:
    license: (ISC)
    About to write to F:DevSpaceGulppackage.json:
    
    {
      "name": "gulp",
      "version": "1.0.0",
      "description": "",
      "main": "gulpfile.js",
      "dependencies": {
        "gulp": "^4.0.0"
      },
      "devDependencies": {},
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }
    
    
    Is this OK? (yes)
    
    F:DevSpaceGulp>
    

    六、初始化gulpfile.js 的文件

    var gulp = require('gulp');
    gulp.task('default', function() {
      // 将你的默认的任务代码放在这
    });
    
     执行gulp命令
    F:DevSpaceGulp>gulp
    [16:54:12] Using gulpfile F:DevSpaceGulpgulpfile.js
    [16:54:12] Starting 'default'...
    hello gulp
    

    七、安装项目组件

    cnpm install -D gulp gulp-minify-css gulp-cssmin gulp-minify-html gulp-uglify --save-dev 
    cnpm install -D gulp-jshint  --save-dev 
    cnpm install -D gulp-rename gulp-concat gulp-clean gulp-notify --save-dev 
    cnpm install -D browser-sync gulp-sass gulp-clean-css gulp-watch --save-dev
    cnpm install -D gulp-connect gulp-less imagemin-pngquantgulp-imagemin --save-dev
    

    压缩JS,CSS文件需要引用如下组件:

    • gulp-minify-css: 压缩css
    • gulp-jshint: 检查js
    • gulp-uglify: 压缩js
    • gulp-concat: 合并文件
    • gulp-rename: 重命名文件
    • gulp-clean: 清空文件夹
    • gulp-notify:提示
    • browser-sync:
    • gulp-sass:sass编译

    八、创建任务,并执行

    在开发目录执行gulp命令,启动编译任务。

    九、删除

    1、安装:npm install -g rimraf(全局安装),
    如果安装了cnpm,也可使用cnpm install -g rimraf 命令

    2、使用:先定位目标文件夹的父级目录,
    然后命令行输入rimraf 为需要删除的文件夹名称)

    附件一:gulpfile.js示例1

    // 引入 gulp及组件
    var gulp=require('gulp'),  //gulp基础库
        minifycss=require('gulp-minify-css'),   //css压缩
        concat=require('gulp-concat'),   //合并文件
        uglify=require('gulp-uglify'),   //js压缩
        rename=require('gulp-rename'),   //文件重命名
        jshint=require('gulp-jshint'),   //js检查
        notify=require('gulp-notify');   //提示
    
    gulp.task('default',function(){
        gulp.start('minifycss','minifyjs');
    });
     
    //css处理
    gulp.task('minifycss',function(){
       return gulp.src('htdocs/kunpeng/static/css/*.css')      //设置css
           .pipe(concat('order_query.css'))      //合并css文件到"order_query"
           .pipe(gulp.dest('dist/styles'))           //设置输出路径
           .pipe(rename({suffix:'.min'}))         //修改文件名
           .pipe(minifycss())                    //压缩文件
           .pipe(gulp.dest('dist/styles'))            //输出文件目录
           .pipe(notify({message:'css task ok'}));   //提示成功
    });
    
    //JS处理
    gulp.task('minifyjs',function(){
       return gulp.src(['/static/js/juicer-min.js','/static/js/bootstrap.min.js','/static/js/bootstrap-datetimepicker.min.js','/static/js/order_query.js'])  //选择合并的JS
           .pipe(concat('order_query.js'))   //合并js
           .pipe(gulp.dest(''dist/js'))         //输出
           .pipe(rename({suffix:'.min'}))     //重命名
           .pipe(uglify())                    //压缩
           .pipe(gulp.dest('dist/js'))            //输出 
           .pipe(notify({message:"js task ok"}));    //提示
    });
    

    附件二:gulpfile.js示例2

    var gulp = require('gulp');
    var rename = require('gulp-rename');//重命名
    var uglify=require('gulp-uglify');//js压缩
    var watch=require('gulp-watch');//监视
    var less=require('gulp-less');//编译less
    var minifyCss = require("gulp-minify-css");//压缩CSS
    var minifyHtml = require("gulp-minify-html");//压缩html
    var jshint = require("gulp-jshint");//js检查
    var imagemin = require('gulp-imagemin');
    var pngquant = require('imagemin-pngquant'); //png图片压缩插件
    var connect=require('gulp-connect');//引入gulp-connect模块 
    // gulp.task('min', function () {
    //     gulp.src('copyUrl/js/resize.js') // 要压缩的js文件
    //     .pipe(uglify()) //使用uglify进行压缩,更多配置请参考:
    //     .pipe(rename('resize.min.js'))
    //     .pipe(gulp.dest('dist/fot')); //压缩后的路径
    // });
     
    gulp.task('watchs',function(){
        gulp.watch('cug_vatti_Backpass/*.html',gulp.series('html'));
        gulp.watch('cug_vatti_Backpass/css/*.less',gulp.series('css'));
        gulp.watch('cug_vatti_Backpass/js/*.js',gulp.series('js'));
    })
    gulp.task('connect',function(){
        connect.server({
            root:'cug_vatti_Backpass',//根目录
            // ip:'192.168.11.62',//默认localhost:8080
            livereload:true,//自动更新
            port:9909//端口
        })
    })
     
    gulp.task('html',function(){
        return gulp.src('cug_vatti_Backpass/*.html')
        .pipe(gulp.dest('dist/html'))
        .pipe(connect.reload());
    })
     
    gulp.task('css',function(){
        return gulp.src('cug_vatti_Backpass/css/*.less')
        .pipe(less())//编译less
        .pipe(gulp.dest('cug_vatti_Backpass/css')) //当前对应css文件
        .pipe(connect.reload());//更新
    })
     
    gulp.task('js',function(){
        return gulp.src('cug_vatti_Backpass/js/jquery-1.8.0.min.js')
        .pipe(jshint())//检查代码
        .pipe(uglify())//压缩js
        .pipe(gulp.dest('dist/js'))
        .pipe(connect.reload());
    })
     //gulp.series|4.0 依赖
     //gulp.parallel|4.0 多个依赖嵌套
    gulp.task('default',gulp.series(gulp.parallel('connect','watchs','html','css','js')));
    

    其他注意事项

    1、charset和import格式化
    识别内容
    @charset 'utf-8';
    @import 'const.scss';

    2、导入scss命名格式,要以下划线开头

  • 相关阅读:
    文件操作回顾
    数据类型回顾
    面向对象三大特性之封装与多态
    面向对象之继承
    轮播图
    jQuery事件操作
    jQuery动画效果
    jQuery篇
    文档对象模型
    javascript
  • 原文地址:https://www.cnblogs.com/taony/p/10177730.html
Copyright © 2011-2022 走看看