JS中使用gulp實(shí)現(xiàn)壓縮文件及瀏覽器熱加載功能
gulp類似于grunt,都是基于Node.js的前端構(gòu)建工具。不過gulp壓縮效率更高。
一.安裝gulp
首先,你要安裝過nodejs,如果沒有安裝過的同學(xué)請(qǐng)自行下載。 先再命令行里輸入 npm install gulp -g 下載gulp
二.創(chuàng)建gulp項(xiàng)目
創(chuàng)建一個(gè)你需要項(xiàng)目文件夾,然后在根目錄輸入 npm init (npm init命令會(huì)為你創(chuàng)建一個(gè)package.json文件,這個(gè)文件保存著這個(gè)項(xiàng)目相關(guān)信息。比如你用到的各種依賴)
三.使用npm install 安裝各種依賴
例:
npm install browser-sync--save-dev

這里總共用到了這些依賴,請(qǐng)自行下載 具體各自都有什么用 后面會(huì)具體介紹。
四.編寫gulpfile.js
首先,聲明這些依賴

然后我們就要開始最重要的工作了,配置這些依賴
1.配置壓縮css

2.配置壓縮js

3.配置壓縮img

4.配置html,這里沒有進(jìn)行壓縮,感覺沒有壓縮的必要 (純屬見仁見智)

5.配置清楚文件,因?yàn)槊看未虬紩?huì)生成新文件 所以在這之前要把之前的文件給清除掉

6.配置瀏覽器熱加載

7.配置打包

這里的runSequence是指能同時(shí)執(zhí)行多個(gè)命令
8.設(shè)置gulp啟動(dòng)時(shí)執(zhí)行哪些配置

最后放上全部代碼 供大家參考
var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');
var uglify = require('gulp-uglify');
var imagemin = require('gulp-imagemin');
var minifyCSS = require('gulp-minify-css');
var cache = require('gulp-cache');
var del = require('del');
var runSequence = require('run-sequence');
var minifyHtml= require("gulp-minify-html");
gulp.task('sass', function(){ //打包sass
return gulp.src('app/scss/**/*.scss')
.pipe(sass()) // Converts Sass to CSS with gulp-sass
.pipe(gulp.dest('app/css'))
.pipe(browserSync.reload({
stream: true
}))
});
gulp.task('js',function() {
gulp.src('app/**/*.js')
.pipe(uglify())//壓縮
.pipe(gulp.dest('dist'));
});
gulp.task('css', function () {
gulp.src('app/css/*.css')
.pipe(minifyCSS())
.pipe(gulp.dest('dist/css'))
})
gulp.task('minify-html',function() {
gulp.src('app/**/*.html')//要壓縮的html文件
.pipe(gulp.dest('dist'));
});
gulp.task('images', function(){
return gulp.src('app/images/**/*.+(png|jpg|jpeg|gif|svg)')
// Caching images that ran through imagemin
.pipe(cache(imagemin({
interlaced: true
})))
.pipe(gulp.dest('dist/images'))
});
gulp.task('clean', function(callback) {
del('dist');
return cache.clearAll(callback);
});
gulp.task('watch',['browserSync', 'sass'],function(){ //我們可以在watch任務(wù)之前告知Gulp,先把browserSync和Sass任務(wù)執(zhí)行了再說。
gulp.watch('app/scss/**/*.scss', ['sass']);
gulp.watch('app/*.html', browserSync.reload);
gulp.watch('app/js/**/*.js', browserSync.reload);
// Other watchers
});
gulp.task('browserSync', function() { //瀏覽器熱加載
browserSync({
server: {
baseDir: 'app'
},
})
});
gulp.task('build', function (callback) {
runSequence('clean',['minify-html','js','images','css'],callback)
});
gulp.task('default', function (callback) {
runSequence(['sass','browserSync', 'watch'],
callback
)
});
以上所述是小編給大家介紹的JS中使用gulp實(shí)現(xiàn)壓縮文件及瀏覽器熱加載功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
微信小程序?qū)崿F(xiàn)一張或多張圖片上傳(云開發(fā))
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)一張或多張圖片上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
echarts餅圖自定義設(shè)置顏色的3種實(shí)現(xiàn)方式
ECharts餅圖的顏色可以通過多種方式進(jìn)行設(shè)置,下面這篇文章主要給大家介紹了關(guān)于echarts餅圖自定義設(shè)置顏色的3種實(shí)現(xiàn)方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
JavaScript寫的一個(gè)自定義彈出式對(duì)話框代碼
最近閑來無事,用js自己做了一個(gè)彈出式對(duì)話框,需要應(yīng)用彈出式對(duì)話框的朋友可以參考下。2010-01-01
JavaScript中的canvas?實(shí)現(xiàn)一個(gè)圓環(huán)漸變倒計(jì)時(shí)效果
這篇文章主要介紹了JavaScript中的canvas?實(shí)現(xiàn)一個(gè)圓環(huán)漸變倒計(jì)時(shí)效果,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
原生JS檢測(cè)CSS3動(dòng)畫是否結(jié)束的方法詳解
這篇文章主要介紹了原生JS檢測(cè)CSS3動(dòng)畫是否結(jié)束的方法,結(jié)合實(shí)例形式分析了javascript事件響應(yīng)及針對(duì)css3屬性檢測(cè)相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
BootStrap使用file-input插件上傳圖片的方法
這篇文章主要介紹了BootStrap使用file-input插件上傳圖片的方法,bootstrap的圖片上傳框架 file-input 插件非常不錯(cuò),下面小編通過本文介紹下這個(gè)插件的使用方法,感興趣的朋友一起看看吧2016-09-09
JavaScript實(shí)現(xiàn)簡(jiǎn)單日期特效
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單日期特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04

