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学习小结(一)
Jul 06 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
浅谈vue websocket nodeJS 进行实时通信踩到的坑
Sep 22 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
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
php实现微信支付之现金红包
2018/05/30 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
设定php简写功能的方法
2019/11/28 PHP
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
js倒计时抢购实例
2015/12/20 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
python 同时运行多个程序的实例
2019/01/07 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
社区母亲节活动记录
2014/03/06 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
购房协议书范本
2014/10/02 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
详解Python自动化之文件自动化处理
2021/06/21 Python