gulp搭建項(xiàng)目

代碼配置部分轉(zhuǎn)載自blog鏈接

安裝gulp

終端查看.png

全局查看gulp的版本建钥,如果沒有g(shù)ulp則需要通過npm install -g gulp全局安裝gulp涛救。

增加包管理文件

npm init

安裝項(xiàng)目插件

除了全局安裝gulp,每個(gè)項(xiàng)目需要單獨(dú)安裝一個(gè)gulp松邪,下圖中項(xiàng)目gulp的版本是4.0.0
npm install gulp --save-dev

項(xiàng)目終端查看.png

安裝常用的其他插件
npm install gulp-babel gulp-concat gulp-uglify gulp-less gulp-watch gulp-connect gulp-imagemin del gulp-minify-css gulp-babel@7 babel-core gulp-htmlmin --save-dev

增加gulp配置文件

在根目錄下新建一個(gè)gulpfile.js
代碼轉(zhuǎn)載自blog鏈接
備注: 以下代碼是gulp 4.0的版本攒砖,3.0版本的api方法有些不同

//引入gulp
const gulp = require('gulp');
const babel = require('gulp-babel'); // 語法轉(zhuǎn)換
const concat = require('gulp-concat'); // 合并
const uglify = require('gulp-uglify'); // js壓縮
const sass = require('gulp-less') // scc編譯
const htmlmin = require('gulp-htmlmin'); //html壓縮
const watch = require('gulp-watch');// 監(jiān)聽文件
const connect = require('gulp-connect'); // 服務(wù)
const imagemin = require('gulp-imagemin') // 圖片壓縮
const del = require('del') // 清空目錄
const minifyCSS = require('gulp-minify-css') //css壓縮
const open = require('open');

// es6語法轉(zhuǎn)換 js壓縮 md5命名
gulp.task('js', async () => {
    await gulp.src('./src/js/*.js')
        .pipe( babel({
            presets: ['@babel/env']
        }))
        .pipe( uglify())
        .pipe(gulp.dest('./dist/js'))
        .pipe( connect.reload())
});
// scss編譯成css
gulp.task("scss", async () => {
    await gulp.src('./src/style/*.scss')
        .pipe( sass().on('error',  sass.logError))
        .pipe(gulp.dest('./src/css'))
});
// scss編譯成css
gulp.task("less", async () => {
    await gulp.src('./src/style/*.less')
        .pipe( less().on('error',  less.logError))
        .pipe(gulp.dest('./src/css'))
});
// scc合并壓縮
gulp.task("css", async () => {
    await gulp.src(['./src/css/index.css', './src/css/base.css'])
        .pipe( concat('index.css'))
        .pipe( minifyCSS({ keepBreaks: true }))
        .pipe(gulp.dest('./dist/css'))
        .pipe( connect.reload())
})

// 壓縮圖片
gulp.task('img', async () => {
    await gulp.src('./src/img/*')
        .pipe( imagemin())
        .pipe(gulp.dest('./dist/img'))
})
// html壓縮
gulp.task('html', async () => {
    await gulp.src('./src/index.html')
        .pipe( htmlmin({ collapseWhitespace: true }))
        .pipe(gulp.dest('dist/'))
        .pipe( connect.reload())

});

gulp.task('clean', async () => {
    await del(['dist/*']);
})

//服務(wù)
gulp.task('connect', function () {
     connect.server({
        root: "src",
        port: 3001,
        livereload: true,
    });
    // 自動(dòng)打開瀏覽器
    open('http://localhost:3001')
});
//監(jiān)視文件, 自動(dòng)執(zhí)行
gulp.task('myWatch', function () {

    // 監(jiān)聽文件
    gulp.watch('./src/scss/*.scss', gulp.series('scss'))
    gulp.watch('./src/css/*.css', gulp.series('css'))
    gulp.watch('./src/js/*.js', gulp.series('js'))
    gulp.watch('./src/index.html', gulp.series('html'))
    gulp.watch('./src/img/*', gulp.series('img'))
})
//啟動(dòng)開發(fā)環(huán)境 gulp.series是順序執(zhí)行 gulp.parallel是同步執(zhí)行,gulp start
gulp.task('start', gulp.series(gulp.parallel('myWatch', 'connect')));
// 構(gòu)建項(xiàng)目诗充,gulp dist
gulp.task('dist', gulp.series('clean', gulp.parallel('html', 'scss', 'css', 'js', 'img')));
// 默認(rèn)啟動(dòng)開發(fā)環(huán)境,直接gulp執(zhí)行
gulp.task('default', gulp.series('start'));


如上棍郎,在src中放自己的源碼其障,在dist內(nèi)放至發(fā)布后的代碼。
通過gulpgulp startgulp dist執(zhí)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涂佃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜈敢,更是在濱河造成了極大的恐慌辜荠,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抓狭,死亡現(xiàn)場離奇詭異伯病,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門午笛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惭蟋,“玉大人,你說我怎么就攤上這事药磺「孀椋” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵癌佩,是天一觀的道長木缝。 經(jīng)常有香客問我,道長围辙,這世上最難降的妖魔是什么我碟? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮姚建,結(jié)果婚禮上矫俺,老公的妹妹穿的比我還像新娘。我一直安慰自己掸冤,他們只是感情好恳守,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贩虾,像睡著了一般催烘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缎罢,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天伊群,我揣著相機(jī)與錄音,去河邊找鬼策精。 笑死舰始,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咽袜。 我是一名探鬼主播丸卷,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼询刹!你這毒婦竟也來了谜嫉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤凹联,失蹤者是張志新(化名)和其女友劉穎沐兰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔽挠,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡住闯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片比原。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡插佛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出量窘,到底是詐尸還是另有隱情雇寇,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布绑改,位于F島的核電站谢床,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏厘线。R本人自食惡果不足惜识腿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望造壮。 院中可真熱鬧渡讼,春花似錦、人聲如沸耳璧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旨枯。三九已至蹬昌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攀隔,已是汗流浹背皂贩。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昆汹,地道東北人明刷。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像满粗,于是被迫代替她去往敵國和親辈末。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359