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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 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
Protoss魔法科技
2020/03/14 星际争霸
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python比较2个xml内容的方法
2015/05/11 Python
python 2.7.14安装图文教程
2018/04/08 Python
Python求解正态分布置信区间教程
2019/11/20 Python
python next()和iter()函数原理解析
2020/02/07 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
关于车尾的标语大全
2015/08/11 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
JS setTimeout与setInterval的区别
2022/04/20 Javascript