Nodejs系列一 gulp初探

Posted IT肌肉男

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs系列一 gulp初探相关的知识,希望对你有一定的参考价值。

Nodejs,目前最流行运行环境,没有之一,发展非常迅猛,而其中相关的构建工具grunt和gulp也是非常的火爆,功能十分强大,这里,带大家初探gulp的世界。


  1. nodejs的安装

首先,得到node官网或者中文网下载一个nodejs,注意选择自己对应的版本。

我的电脑之前已经安装过了,这里就不重新安装了。

安装完之后,可以在DOC操作界面查看你的node是否安装成功。

输入命令行:

node -v

npm -v

npm是node自带的一个前端程序包管理器,用来安装对程序插件进行安装,卸载以及配置。

Nodejs系列一 gulp初探


 2.gulp的安装

新建一个你的项目目录

Nodejs系列一 gulp初探

从DOC操作界面进入该目录

Nodejs系列一 gulp初探

输入命令行:

npm init  然后一直回车就可以了,什么都不需要配置,直到命令界面回到目录下

Nodejs系列一 gulp初探

然后开始输入下面格式命令安装 gulp及其插件:

npm i --save-dev gulp     安装gulp插件并保存设备驱动

Nodejs系列一 gulp初探

等待直到安装成功:

Nodejs系列一 gulp初探

此时gulp已经安装成功。

这时候我们可以回到项目目录下看一看安装的gulp目录

Nodejs系列一 gulp初探

package.json是npm init生成的相关配置文件,node_modules是安装gulp生成的相关目录。

我们再以同样的方式,安装一下常用的几个实用gulp插件:

格式:npm i --save-dev xxx

    gulp-clean       //清除文件(用于在上传修改后文件前删除旧文件)

    gulp-concat      //编译js文件

    gulp-connect  //$.connect.load()用于通知服务器刷新,IE8及以下不支持

    gulp-cssmin  //用于css文件压缩打包

    gulp-imagemin  //用于image文件压缩打包

    gulp-less  //css插件,给css添加变量和函数功能,并且可以把多个css文件引入合成一个css文件

    gulp-load-plugins  //优化,可以使其他gulp模块不需要声明变量来保存,使用 $.less 代替

    gulp-uglify  //用于Js文件压缩打包 

    open  //打开gulp文件的url


 3.安装结束之后,需要写配置文件

在你的项目中随便新建一个js文件 xxx.js,比如:

Nodejs系列一 gulp初探

打开文件,将如下代码填进去,里面有我写的注释。

你可以直接上我的github下载源码:

https://github.com/l511407563/gulp.git

Nodejs系列一 gulp初探

Nodejs系列一 gulp初探

我设置了SSH,如果用 git clone 记得将SSH转换成HTTPS下载。

如果使用的是华为内网可以直接使用Download ZIP下载


这里附上代码和注释:

var gulp = require('gulp');

var $ = require('gulp-load-plugins')();

var open = require('open');


var app = {

srcPath:'src/',

devPath:'build/',

prdPath:'dist/'

};


gulp.task('lib',function(){       //lib任务名   ,fn 回调函数,任务内容

.pipe(gulp.dest(app.prdPath + 'vendor')) //vendor 就是 bower_components

.pipe($.connect.reload()); //用于通知服务器刷新,IE8及以下不支持

});


gulp.task('html',function(){

gulp.src(app.srcPath + '/**/*.html')      //从src拷贝到build和dist下

.pipe(gulp.dest(app.devPath))

.pipe(gulp.dest(app.prdPath))

.pipe($.connect.reload());

});


gulp.task('json',function(){

gulp.src(app.srcPath + 'data/**/*.json') //从data拷贝到data下

.pipe(gulp.dest(app.devPath + 'data'))

.pipe(gulp.dest(app.prdPath + 'data'))

.pipe($.connect.reload());

});


gulp.task('less',function(){

gulp.src(app.srcPath + 'style/index.less')   //从style拷贝到css下

.pipe($.less())      

.pipe(gulp.dest(app.devPath + 'css'))

.pipe($.cssmin())

.pipe(gulp.dest(app.prdPath + 'css'))

.pipe($.connect.reload());

});


gulp.task('js',function(){

gulp.src(app.srcPath + 'script/**/*.js') //从script拷贝到js下

.pipe($.concat('index.js'))

.pipe(gulp.dest(app.devPath + 'js'))

.pipe($.uglify())

.pipe(gulp.dest(app.prdPath + 'js'))

.pipe($.connect.reload());

})


gulp.task('image',function(){

gulp.src(app.srcPath + 'image/**/*')         //从image拷贝到image下

.pipe(gulp.dest(app.devPath + 'image'))

.pipe($.imagemin())  

.pipe(gulp.dest(app.prdPath + 'image'))

.pipe($.connect.reload());

});


//用于打包上面所有的文件

gulp.task('build',['image','js','less','lib','html','json']);


//用于清除旧的项目文件

gulp.task('clean',function(){

gulp.src([app.devPath,app.prdPath])

.pipe($.clean());

})


//用于自动化执行

gulp.task('server',['build'],function(){

$.connect.server({        //启动一个服务器

root:[app.devPath],   //默认从开发路径读取

livereload:true,      //定义每次写完自动刷新一次服务器,IE不支持

port:1234     //端口

});

open('http://localhost:1234'); //默认打开端口

//监听变化,m-v

gulp.watch('bower_components/**/*',['lib']);

gulp.watch(app.srcPath + '/**/*.html',['html']);

gulp.watch(app.srcPath + 'data/**/*.json',['json']);

gulp.watch(app.srcPath + 'style/**/*.less',['less']);

gulp.watch(app.srcPath + 'script/**/*.js',['js']);

gulp.watch(app.srcPath + 'image/**/*',['image']);

});

//偷懒方法,只输入gulp的时候默认只编译server

gulp.task('default',['server']);


4.以上都弄完之后,你可以创建的项目来测试一下了

Nodejs系列一 gulp初探

这个src目录为源码目录,index.html为首页,style放置样式less文件,script放置js文件,image放置图片,data放置json数据文件,这些文件的名字最好不要改变,因为我配置文件中设定了,如果你学会了修改配置文件,再试着去修改

在DOC命令中输入 gulp 开启项目

Nodejs系列一 gulp初探


gulp开启后的三个效果:

第一,node服务器功能打开,别人可以访问你的个人网页。

Nodejs系列一 gulp初探

第二,每次你保存的时候,都会自动更新生成两个文件,build是开发态的源文件拷贝,dist是压缩态的源文件,你无需再去手动压缩css,js,image等文件,不需要去手动创建更新这些文件。

Nodejs系列一 gulp初探

第三,浏览器实现无刷新自动更新功能。

以前你修改代码保存之后,需要手动F5刷新网页,甚至清除缓存。

Nodejs系列一 gulp初探

现在,你只需要ctrl+s 保存修改后的文件,浏览器将自动刷新


用了gulp,是不是感觉工作瞬间减少了一半以上的时间?

华为内网的同事如果遇到npm无法使用,无法安装gulp的情况,请关注我的HI博客,lwx469789,兰宇。里面有npm的 .huawei.com 镜像设置。

以上是关于Nodejs系列一 gulp初探的主要内容,如果未能解决你的问题,请参考以下文章

前端构建大法 Gulp 系列

节点。 npm install 后找不到 gulp

初探接口测试框架--python系列7

leaflet-webpack 入门开发系列一初探篇(附源码下载)

openlayers5-webpack 入门开发系列一初探篇(附源码下载)

爬虫技术初探——宏观分析小工具系列一(中泰宏观 梁中华 苏仪)