初探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生成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM