VS中使用Gulp
关于gulp资料可以访问:http://www.gulpjs.com.cn/,本篇主要讲解在VS中使用gulp对js和css进行压缩合并
1、下载node.js,gulp依赖于node.js,可以访问http://nodejs.cn/下载,本人下载的4.4.4版本,下载完后进行傻瓜式安装,注意安装路径最好不要含有空格或中文
2、安装gulp以及需要的插件
1、输入命令进行安装gulp
npm install --global gulp
2、安装需要用到的插件,可以选择安装
npm install gulp-minify-css gulp-uglify gulp-concat gulp-rename gulp-notify
3、输入gulp -v,如果能出现版本号说明安装成功
3、新建Web项目,并在项目根目录下新建gulpfile.js,内容为:
var gulp = require('gulp');
// 引入组件
var //htmlmin = require('gulp-htmlmin'), //html压缩
minifycss = require('gulp-minify-css'),//css压缩
uglify = require('gulp-uglify'),//js压缩
concat = require('gulp-concat'),//文件合并
rename = require('gulp-rename'),//文件更名
notify = require('gulp-notify');//提示信息
/*
*:匹配任意数量的字符,不包括/
?:匹配单个字符,不包括/
**:匹配任意数量的字符,包括/
{}:允许使用逗号分隔的列表,表示“or”(或)关系
!:用于模式的开头,表示只返回不匹配的情况
*/
//比如,Scripts/*.js匹配Scripts目录下面的文件名以.js结尾的文件,
//CSS/**/*.css匹配CSS目录和它的所有子目录下面的文件名以.css结尾的文件,
//!*.css表示匹配所有后缀名不为“.css”的文件。
var cssPath = ['CSS/**/*.css'];
var jsPath = ['Scripts/*.js'];
// 合并、压缩、重命名css
gulp.task('css', function () {
return gulp.src(cssPath)
.pipe(concat('main.css'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('dest/css'));
//.pipe(notify({ message: 'css task ok' }));
});
// 合并、压缩js文件
gulp.task('js', function () {
return gulp.src(jsPath)
.pipe(concat('main.js'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('dest/js'));
//.pipe(notify({ message: 'js task ok' }));
});
// 默认任务
gulp.task('default', function () {
gulp.run('css', 'js');
// 监听 .css files 改变则会重新压缩
gulp.watch(cssPath, ['css']);
// 监听 .js files 改变则会重新压缩
gulp.watch(jsPath, ['js']);
});
4、如果安装的是VS2015则不需要安装插件,右键gulpfile.js会有task runner explorer,如果是VS2013或其他版本:
在VS工具-扩展更新-联机-输入task runner explorer搜索安装

5、如果出现此页面则成功了,双击某个任务即可运行

6、我这里是双击default任务,运行结果:

结语:在默认的系统盘下安装了gulp以及插件,但是换到其他盘符又不行了,需要重新在该盘安装
VS中使用Gulp的更多相关文章
- 前后端分离中,Gulp实现头尾等公共页面的复用
前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...
- Cordova中使用gulp
打开package.json,添加main:gulpfile.js 在dependencies中添加gulp,vs2015十分智能,可以智能从npm中获取依赖如下图: 在添加过程中注意 ...
- 前后端分离中,gulp实现头尾等公共页面的复用 前言
前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...
- vscode中执行gulp task的简便方法
本文重点是gulp在vscode中执行task任务的方法 如何像webstorm那样简便操作gulp 的task 第1步:安装node.下载地址:https://nodejs.org/zh-cn/ 检 ...
- Visual Studio 2017中使用gulp编译sass/scss
在Visual Studio 2017中使用gulp编译sass/scss文件 需要的环境:Visual Studio 2017.Node.js.npm 在vs2017中 [视图]-[其他窗口]-[任 ...
- 在Visual Studio 2015的Cordova项目中使用Gulp
之前一直是在vs 2013中使用Cordova来开发移动app(目前有iPad版/iPhone版/安卓版),准备到下一个milestone的时候升级到2015,这两天在尝试各种东西. 2015中的co ...
- 记项目中ES6+gulp+angularjs里的问题
AngualrJs中可用来注入的有三种类型,service.factory.provider,这三种写法不样,用法也都不一样.其中,service只实例化一次,其实就是单例模式的思想.无论我们在什么地 ...
- Ionic学习笔记三 Gulp在ionic中的使用
简介 Gulp是一个基于流的自动化构建器. 安装 npm config set registry http://registry.npm.taobao.org ---最好用国内源 npm instal ...
- 使用gulp在开发过程中合理导出zip文件
最近一段时间一直在做桌面混合应用,跟以往做web端不同的是,无法再通过在浏览器上输入内部的域名来随时跟踪开发版本的状况了,只能通过打包代码让产品或领导随时跟踪进度. 这里就涉及到一些问题了: 1,需要 ...
随机推荐
- 【python】 json.dumps() json.dump()的区别
以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...
- 【bzoj4517】[Sdoi2016]排列计数 组合数+dp
题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条 ...
- 【题解】HNOI2010合唱队
我果然还是太弱了呜呜呜……洛谷P3205 区间dp:注意到一段区间最两侧的人必然是最后加入队伍的所以由此我们可以分成两种情况来讨论. 一种是最后一个加入的人是左边的,另一种是右边的.那么状态:dp[i ...
- [洛谷P4949]最短距离
题目大意:给一棵基环树,两种操作: $1\;x\;y:$把第$x$条边长度改成$y$ $2\;x\;y:$查询$x$到$y$的最短距离 题解:发现最短距离只有两种可能,第一个是树上的距离,第二种是经过 ...
- Linux上 Can't connect to X11 window server using XX as the value of the DISPLAY 错误解决方法
在Linux上运行需要图形界面的程序时出现如下错误提示: No protocol specified Exception in thread "main" java.awt.AWT ...
- More on understanding sort_buffer_size
There have been a few posts by Sheeri and Baron today on the MySQL sort_buffer_size variable. I want ...
- 用JSR的@Inject代替@Autowired完成自动装配
从spring3.0开始spring支持JSR-330 的标准注解.主要是javax.inject这个包下的: 下面的例子用@Inject代替@Autowired.完成自动装配: MovieFinde ...
- c++(类继承)示例[仅用于弱弱的博主巩固知识点用哦,不好勿喷]
测试代码: Animals.h: #pragma once #include<string> class Animals { protected: std::string Food; in ...
- 转:强化学习(Reinforcement Learning)
机器学习算法大致可以分为三种: 1. 监督学习(如回归,分类) 2. 非监督学习(如聚类,降维) 3. 增强学习 什么是增强学习呢? 增强学习(reinforcementlearning, RL)又叫 ...
- tr/td
在HTML中,tr代表行,td代表列. 说明: 1.tr与td必须一起使用,并且输入的内容必须在td里面: 2.td必须在tr里面,表示在一行中的列: 3.在一个tr里面,有x个td,就表示在这一行里 ...