一、下载并安装Node.js

C:\Users\Administrator>node -v
v11.0.0

二、安装npm,安装淘宝cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
C:\Users\Administrator>cnpm -v
cnpm@6.0.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js)
npm@6.5.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\lib\npm.js)
node@11.0.0 (C:\Program Files\nodejs\node.exe)
npminstall@3.17.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=C:\Users\Administrator\AppData\Roaming\npm
win32 x64 10.0.17763
registry=https://registry.npm.taobao.org

三、全局安装gulp

C:\Users\Administrator>cnpm install --global gulp

四、局部安装gulp

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

npm install gulp --save-dev
F:\DevSpace\Gulp>npm install gulp --save-dev
npm WARN saveError ENOENT: no such file or directory, open 'F:\DevSpace\Gulp\package.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:\DevSpace\Gulp\package.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_modules\fsevents):
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:\DevSpace\Gulp>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:\DevSpace\Gulp\package.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:\DevSpace\Gulp>

六、初始化gulpfile.js 的文件

var gulp = require('gulp');
gulp.task('default', function() {// 将你的默认的任务代码放在这
});执行gulp命令
F:\DevSpace\Gulp>gulp
[16:54:12] Using gulpfile F:\DevSpace\Gulp\gulpfile.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:8080livereload: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命名格式,要以下划线开头

转载于:https://www.cnblogs.com/taony/p/10177730.html

Gulp前端构建前端开发环境相关推荐

  1. 「offer来了」浅谈前端面试中开发环境常考知识点

    「面试专栏」前端面试之开发环境篇

  2. XamarinForms教程构建XamarinForms开发环境

    构建XamarinForms开发环境 所谓Xamarin.Forms的开发环境,就是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE.对于任何的程 ...

  3. Vagrant 构建 Linux 开发环境

    Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool .它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开 ...

  4. 大数据开发教程——构建Hadoop开发环境

    什么是Hadoop ? Hadoop是由 Apache 基金会开发和维护的一个开源的分布式计算和存储框架. Hadoop 为庞大的计算机集群提供可靠的.可伸缩的应用层计算和存储支持,它允许使用简单的编 ...

  5. React教程(六)——使用 create-react-app 快速构建 React 开发环境

    1.create-react-app是什么? 做一个react项目,构建其开发环境对初学者来说是很困难的!所以,facebook专门出了create-react-app命令,用于react项目开发环境 ...

  6. 0基础用vagrant 快速构建larval开发环境 (我杨某人尽力描述了,都有从0介绍)

    vagrant 快速构建larval开发环境 历史背景 今天闲来无事又从头写了一遍,这玩意能干嘛?从0开始,5分钟自动化部署larval框架项目(取决于你网速),无论是windows,mac,linu ...

  7. Win10-Ubuntu子系统构建ESP8266_RTOS_SDK开发环境

    陈拓 2021/01/16-2021/01/20 1. 概述 ESP8266的开发环境是在linux系统下构建的.树莓派的官方操作系统就是Linux系统,在<树莓派安装ESP8266_SDK开发 ...

  8. java jse_Java构建JSE开发环境教程

    Java构建JSE开发环境教程 引导语:你们知道如何运用Java构建JSE开发环境吗,以下是百分网小编分享给大家的Java构建JSE开发环境教程,欢迎参考学习! 构建JSE开发环境 学习 Java 开 ...

  9. 基于 Docker 打造前端持续集成开发环境

    知乎: https://zhuanlan.zhihu.com/p/37961402 本文将以一个标准的 Vue 项目为例,完全抛弃传统的前端项目开发部署方式,基于 Docker 容器技术打造一个精简的 ...

  10. gulpfile php,Laravel利用gulp如何构建前端资源详解

    什么是gulp? gulp是新一代的前端项目构建工具,你可以使用gulp及其插件对你的项目代码(less,sass)进行编译,还可以压缩你的js和css代码,甚至压缩你的图片,gulp仅有少量的API ...

最新文章

  1. [再读书]私有构造函数
  2. 通过describe命令学习Kubernetes的pod属性详解
  3. Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决
  4. java 用来查找输出的函数_Solr复杂查询一:函数查询
  5. 为什么产品经理面试都喜欢问注册问题?
  6. 如何处理JCO版本太旧引起的问题
  7. mq集群要建传输队列吗_面试官:消息队列这些我必问!
  8. 【算法】剑指 Offer 22. 链表中倒数第k个节点
  9. 【手机开发岗位职责|手机开发是做什么的】-看准网
  10. 例解List<Map<String, Object>>存放的对象问题
  11. 兼容之css中的hack
  12. flash写保护原理_Flash存储原理
  13. 谈谈web打印快递单及经验
  14. 1、解读中台 -- 什么是中台
  15. java怎么定位error_程序遇到错误定位一些小技巧
  16. Three.js 绘图之不规则路径 3D 墙体生成算法
  17. 将JAVA bean/实体类 中为null的属性值转换成空字符串
  18. 用户行为分析的指标及其意义
  19. WordPress安装搭建详细教程—零基础掌握网站如何搭建
  20. layui列表显示缩略图_layui 表格中实现照片预览,点击查看原图

热门文章

  1. office365打开服务器文件出错,新安装的Office 365,打开Excel文件时出错,停止工作...
  2. urllib.parse.quote报错surrogates not allowed
  3. 东北大学软件项目管理与过程改进bb平台期末复习题整理(Part Four)
  4. [附源码]JSP+ssm计算机毕业设计小区物业报修管理系统e2ps6【源码、数据库、LW、部署】
  5. 计算机网络实验一 常用网络命令操作
  6. 北邮信通导论第三单元焦耳小偷升压电路
  7. BadCopyPro 3.75 Build0608 注册码
  8. 【Arduino】编码器OMRON E6B2-CWZ6C
  9. 如何重装win7系统?韩博士一键重装win7系统教程
  10. html 中加载字体太慢,浅谈CSS字体的加载加速问题