首頁 web前端 js教程 gulp安裝以及打包合併詳解

gulp安裝以及打包合併詳解

Jan 18, 2018 am 10:48 AM
gulp 合併 打包

本文主要為大家介紹了關於gulp實作人一個打包合併的方法教程,並分享了gulp打包js/css時合併成一個檔案時的順序的解決方法,文中透過範例程式碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。希望能幫助大家。

前言

gulp是前端開發過程中對程式碼進行建構的工具,是自動化專案的建構利器;她不僅能對網站資源進行最佳化,而且在開發過程中很多重複的任務能夠使用正確的工具自動完成;使用她,我們不僅可以很愉快的編寫程式碼,而且大大提高我們的工作效率。

安裝、打包合併

1.安裝node.js  下載位址:http://nodejs.cn/

開啟node.js 命令列,輸入: node  - v ,有版本號,則正確安裝。

2.安裝淘寶鏡像 :命令列輸入 :

npm install -g cnpm --registry=http://registry.npm.taobao.org
登入後複製

目的:使下在速度更快。

3.全域安裝gulp

cnpm install --global gulp
登入後複製

4.建立目錄,開啟F盤,建立gulp資料夾。

命令列輸入:

f:

cd gulp
登入後複製

5.安裝本機gulp

cnpm install --save-dev gulp
登入後複製

6.建立package.json檔案

cnpm init
登入後複製

一路enter確定就行

7.web編輯器開啟此gulp目錄,如hbuilder、webstorm。

在gulp目錄下建立gulpfile.js文件,gulp運行的入口


#8.確定何種打包壓縮,html、js、 css、img

9.js打包

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('default',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
});
登入後複製

10.運行;node.js輸入

gulp

會有報錯,提示gulp-concat元件沒有安裝。開始安裝 :cnpm install gulp-concat --save-dev

再次運作 :gulp

再次報錯,提示gulp-uglify元件沒有安裝。開始安裝 :cnpm install gulp-uglify --save-dev

再次執行 :gulp

。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

 成功之後會

這裡會看到 finished ‘default' ,‘default' 就是gulp.task任務開始的預設入口。如果建立多個task任務,且修改任務名稱如:

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('default',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
})
 
//css 打包压缩
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
 
  gulp.task('style', function() { //task 任务名称为style
 
  gulp.src('.css/*.css')
 
  .pipe(concat('styles.css'))
 
  .pipe(autoprefix('last 2 versions'))
 
  .pipe(minifyCSS())
 
  .pipe(gulp.dest('styles'));
 
  });
登入後複製

重新執行:gulp

#結果:

會發現只運行了default的task任務。因為這是唯一預設的gulp執行入口。

修改如下

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('js',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
})
 
//css 打包压缩
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
 
  gulp.task('style', function() { //task 任务名称为style
 
  gulp.src('.css/*.css')
 
  .pipe(concat('styles.css'))
 
  .pipe(autoprefix('last 2 versions'))
 
  .pipe(minifyCSS())
 
  .pipe(gulp.dest('styles'));
 
  });

<br>gulp.task('default',function(){
 gulp.run(['js','style']); //这里开始执行多个task任务
});
登入後複製

如果遇到什麼元件沒有安裝的話,想你應該知道怎麼操作了。

11.圖片壓縮

var imagemin = require('gulp-imagemin');
gulp.task('img', function() {
 return gulp.src('imgs/*.png')
 .pipe(imagemin())
 .pipe(gulp.dest('miniImg'));
});
登入後複製

12.html壓縮

var htmlmin = require('gulp-htmlmin');
gulp.task('html', function() {
 return gulp.src('../*.html')
 .pipe(htmlmin({collapseWhitespace: true}))
 .pipe(gulp.dest('../'));
});
登入後複製

13.路徑問題自行修改

gulp打包js/css時合併成一個文件時的順序解決

1、可以使用插進gulp-order。

2、可以這樣的寫法:

return gulp.src(['js/common.js','js/**/*.js'])
.pipe(concat('build.js'))//合成到一个js
.pipe(gulp.dest(buildBasePath+'js'))//输出到js目录
.pipe(uglify())//压缩js到一行
.pipe(concat('build.min.js'))//压缩后的js
.pipe(gulp.dest(buildBasePath+'js'));//输出到js目录
登入後複製

相關推薦:

#Gulp實作靜態網頁模組化實例分享

詳解nodejs實作簡單的gulp打包

如何實作使用gulp實作檔案壓縮及瀏覽器的熱載入

#

以上是gulp安裝以及打包合併詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
如何使用HTML、CSS和jQuery實現圖片合併展示的進階功能 如何使用HTML、CSS和jQuery實現圖片合併展示的進階功能 Oct 27, 2023 pm 04:36 PM

如何使用HTML、CSS和jQuery實現圖片合併展示的高級功能概述:在網頁設計中,圖片展示是一個重要的環節,而圖片合併展示是提高頁面加載速度和提升用戶體驗的常用技巧之一。本文將介紹如何使用HTML、CSS和jQuery來實現圖片合併展示的進階功能,並提供具體的程式碼範例。一、HTML佈局:首先,我們需要在HTML中建立一個容器來展示合併後的圖片。可以使用di

2.4g和5g要不要合併 2.4g和5g要不要合併 Nov 24, 2022 am 10:27 AM

2.4g和5g不建議合併;因為雙頻合一有利有弊,部分手機可能連接雙頻合一的wifi比較困難;對於一般的無線路由器如果沒有弱信號剔除功能,那麼開啟雙頻合一後手機可能一直連著2.4G頻段,完全不會切換到速率更快的2.4G頻段,除非手動開關WIFI,因此建議分開設定。

分享PyCharm專案打包的簡易方法 分享PyCharm專案打包的簡易方法 Dec 30, 2023 am 09:34 AM

簡單易懂的PyCharm專案打包方法分享隨著Python的流行,越來越多的開發者使用PyCharm作為Python開發的主要工具。 PyCharm是功能強大的整合開發環境,它提供了許多方便的功能來幫助我們提高開發效率。其中一個重要的功能就是專案的打包。本文將介紹如何在PyCharm中簡單易懂地打包項目,並提供具體的程式碼範例。為什麼要打包專案?在Python開發

如何使用Java中的SequenceInputStream函數合併輸入流 如何使用Java中的SequenceInputStream函數合併輸入流 Jun 26, 2023 pm 03:03 PM

在Java開發中,我們常常需要合併多個輸入流來處理資料。而SequenceInputStream函數就是Java中提供的用於合併輸入流的函數之一,它可以將多個輸入流合併成一個更大的輸入流,方便我們進行資料處理。那麼,如何使用Java中的SequenceInputStream函數來實現輸入流的合併呢?接下來,本文將透過詳細的步驟介紹其具體實作方法和注意事項。 I

如何在C語言中合併兩個陣列? 如何在C語言中合併兩個陣列? Sep 10, 2023 am 09:05 AM

將兩個數組作為輸入,嘗試合併或連接兩個數組並將結果儲存在第三個數組中。合併兩個陣列的邏輯如下圖-J=0,k=0for(i=0;i<o;i++){//mergingtwoarrays  if(a[j]<=b[k]){   c[i] =a[j];   j++;  }else{ &nbs

快速上手:Java中的JSON數組合併和分割技巧。 快速上手:Java中的JSON數組合併和分割技巧。 Sep 06, 2023 am 10:21 AM

快速上手:Java中的JSON數組合併和分割技巧在現代的軟體開發中,資料的格式和傳輸變得愈發重要。其中,JSON(JavaScriptObjectNotation)是一種常用的資料格式,特別適用於前後端互動和資料儲存。在Java開發中,我們經常需要處理JSON物件和JSON數組。本文將介紹如何在Java中合併和拆分JSON數組,以及實現這些操作的技巧和示

如何使用Python中的Pandas以特定列合併兩個CSV檔案? 如何使用Python中的Pandas以特定列合併兩個CSV檔案? Sep 08, 2023 pm 02:01 PM

CSV(逗號分隔值)檔案廣泛用於以簡單格式儲存和交換資料。在許多資料處理任務中,需要基於特定列合併兩個或多個CSV檔案。幸運的是,這可以使用Python中的Pandas庫輕鬆實現。在本文中,我們將學習如何使用Python中的Pandas以特定列合併兩個CSV檔案。什麼是Pandas庫? Pandas是一個用於Python資訊控制和檢查的開源程式庫。它提供了用於處理結構化資料(例如表格、時間序列和多維資料)以及高效能資料結構的工具。 Pandas廣泛應用於金融、資料科學、機器學習和其他需要資料操作的領域。

如何使用Python正規表示式進行程式碼打包與分發 如何使用Python正規表示式進行程式碼打包與分發 Jun 23, 2023 am 09:31 AM

隨著Python程式語言的日益流行,越來越多的開發者開始使用Python編寫程式碼。但是在實際使用中,我們常常需要將這些程式碼打包並分發給其他人使用。本文將介紹如何使用Python正規表示式進行程式碼打包與分發。一、Python程式碼打包在Python中,我們可以使用setuptools和distutils等工具來打包我們的程式碼。這些工具可以將Python檔、模組

See all articles