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写的一个简单项目打包工具
May 11 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
nodejs中操作mysql数据库示例
Dec 20 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
python实现apahce网站日志分析示例
2014/04/02 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Django forms组件的使用教程
2018/10/08 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
python pip如何手动安装二进制包
2020/09/30 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
shell的种类有哪些
2015/04/15 面试题
面试后的英文感谢信
2014/02/01 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
中秋晚会活动方案
2014/08/31 职场文书