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学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
详解Nodejs之npm&package.json
Jun 15 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
图解NodeJS实现登录注册功能
Sep 16 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+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
php异常处理捕获错误整理
2019/09/23 PHP
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
Seajs的学习笔记
2014/03/04 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python中函数传参详解
2016/07/03 Python
使用python实现knn算法
2017/12/20 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
Python 编程速成(推荐)
2019/04/15 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
使用python远程操作linux过程解析
2019/12/04 Python
python的setattr函数实例用法
2020/12/16 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
经典促销广告词大全
2014/03/19 职场文书
毕业生面试求职信
2014/06/23 职场文书
超市理货员岗位职责
2014/07/04 职场文书
演讲稿开场白台词
2014/08/25 职场文书
学校运动会通讯稿
2015/07/18 职场文书
2019公司管理制度
2019/04/19 职场文书
2019年思想汇报
2019/06/20 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
Go语言空白表示符_的实例用法
2021/07/04 Golang
Vue的过滤器你真了解吗
2022/02/24 Vue.js