nodejs用gulp管理前端文件方法


Posted in NodeJs onJune 24, 2018

1、安装node.js(https://nodejs.org/en/)

安装后使用node -v查看版本

nodejs用gulp管理前端文件方法

node安装完之后会顺带安装npm

ps:npm其实是Node.js的包管理工具(package manager)为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。

同样用npm -v查看版本

nodejs用gulp管理前端文件方法

2、安装gulp插件:npm install -g gulp

nodejs用gulp管理前端文件方法

3、本地创建一个项目文件并用gulp管理

1>在D盘创建要给空文件夹Gulp_Test 。Win+R打开命令窗口并定位到当前项目目录,然后输入指令:npm init 回车(有git的童鞋在文件夹里直接右键 git bash here也可),命令执行期间会提示输入一些关于项目的描述信息,非必填一路回车即可。

nodejs用gulp管理前端文件方法

完成之后文件夹中会生成一个package.json文件。

2>执行以下命令

//本地安装: npm install gulp --save-dev (gulp插件)

//本地安装: npm install gulp-concat --save-dev (合并插件)

//本地安装:npm install gulp-uglify --save-dev (压缩插件)

至此,所有准备工作已就绪,开始管理我们的项目吧。

(1)在项目根目录创建一个名为gulpfile.js的js文件

(2)在根目录新建js文件夹,并在文件夹中新建两个js文件,代码如下:

index.js:

var index={}; 
index={ 
test:function(argument){ 
console.log('test'); 
} 
} 
index.test();

main.js:

var main = {}; 
main.test=function(argument){ 
console.log("main test"); 
} 
main.test();

(3)在根目录创建build文件夹,用来存放打包后的文件

(4)编辑第(1)步创建的gulpfile.js文件,内容如下:

var fs = require('fs');
var gulp = require('gulp');//gulp自身 
var uglify= require('gulp-uglify');//引入压缩组件
var concat = require('gulp-concat');//引入合并组建
gulp.task('taskName', function() { 
// 找到src目录下的所有文件夹中的所有js文件
return gulp.src('js/*.js')
.pipe(uglify())//压缩 
.pipe(concat('all.min.js'))//输入到all.min.js中 
.pipe(gulp.dest('./build'))//指定目录 
.on('end', callback);//结束事件回调
}); 
//检查文件体积
function callback() {
var path = "./build/all.min.js";
var exists = fs.existsSync(path);
if (!exists) {
return;
}
var states = fs.statSync(path);
console.log("file size:" + Math.ceil(states.size / 1024) + "kb");
}

PS:taskName为变量,任务名。可以定义多个task,并根据glup+taskName执行不同的task

(5)执行gulp命令 :gulp taskName

(6)执行成功之后检查build文件是否有all.min.js生成

Don't go too far and forget why starting!

NodeJs 相关文章推荐
Nodejs如何搭建Web服务器
Mar 28 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 #NodeJs
nodejs实现套接字服务功能详解
Jun 21 #NodeJs
详解Nodejs mongoose
Jun 10 #NodeJs
详解NodeJs开发微信公众号
May 25 #NodeJs
nodejs express配置自签名https服务器的方法
May 22 #NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 #NodeJs
解决nodejs的npm命令无反应的问题
May 17 #NodeJs
You might like
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
Python descriptor(描述符)的实现
2020/11/15 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
《穷人》教学反思
2014/04/08 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
单位活动策划方案
2014/08/17 职场文书
十佳少年事迹材料
2014/12/25 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
SpringBoot快速入门详解
2021/07/21 Java/Android
vue3不同环境下实现配置代理
2022/05/25 Vue.js