初探nodejs,学习使用gulp管理前端文件

1、安装node.jshttps://nodejs.org/en/

安装后使用node -v查看版本

 

node安装完之后会顺带安装npm

ps:npm其实是Node.js的包管理工具(package manager)为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。

同样用npm -v查看版本

2、安装gulp插件:npm install -g gulp

3、本地创建一个项目文件并用gulp管理

     1>在D盘创建要给空文件夹Gulp_Test 。Win+R打开命令窗口并定位到当前项目目录,然后输入指令:npm init 回车(有git的童鞋在文件夹里直接右键 git bash here也可),命令执行期间会提示输入一些关于项目的描述信息,非必填一路回车即可。

完成之后文件夹中会生成一个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:

1 var index={}; 
2 index={ 
3 test:function(argument){ 
4 console.log('test'); 
5 } 
6 } 
7 index.test();
View Code

 

main.js:
 
1 var main = {}; 
2 main.test=function(argument){ 
3 console.log("main test"); 
4 } 
5 main.test();
View Code

 

(3)在根目录创建build文件夹,用来存放打包后的文件

(4)编辑第(1)步创建的gulpfile.js文件,内容如下:

 

 1 var fs = require('fs');
 2 var gulp = require('gulp');//gulp自身 
 3 var uglify= require('gulp-uglify');//引入压缩组件
 4 var concat = require('gulp-concat');//引入合并组建
 5 gulp.task('taskName', function() { 
 6 // 找到src目录下的所有文件夹中的所有js文件
 7 return gulp.src('js/*.js')
 8 .pipe(uglify())//压缩 
 9 .pipe(concat('all.min.js'))//输入到all.min.js中 
10 .pipe(gulp.dest('./build'))//指定目录 
11 .on('end', callback);//结束事件回调
12 }); 
13 //检查文件体积
14 function callback() {
15 var path = "./build/all.min.js";
16 var exists = fs.existsSync(path);
17 if (!exists) {
18 return;
19 }
20 var states = fs.statSync(path);
21 console.log("file size:" + Math.ceil(states.size / 1024) + "kb");
22 }
View Code

 

PS:taskName为变量,任务名。可以定义多个task,并根据glup+taskName执行不同的task

(5)执行gulp命令 :gulp taskName

(6)执行成功之后检查build文件是否有all.min.js生成

posted @ 2018-06-22 17:33  Dupont  阅读(2057)  评论(1编辑  收藏  举报