摘要:介紹這段配置是之前的版本不適配新版本后,更新到了的新寫法。在業(yè)務(wù)中,目前使用這份配置的是一個(gè)項(xiàng)目,所以增加了來啟動(dòng)。
介紹
這段配置是之前的gulp版本不適配新版本node后,更新到了gulp4的新寫法。
在業(yè)務(wù)中,目前使用這份配置的是一個(gè)Koa2+njk項(xiàng)目,所以增加了nodemon來啟動(dòng)server。
分別用到的技術(shù)為:
Less + autoprefixer + cleancss + sourceMap
Js + es6(babel) + uglify + sourceMap
BrowserSync For auto reload
Nodemon for restart Koa2 server
配置廢話不多說,上代碼:
/* * Gulp4通用配置 * Author: Kinice * Time: 2018-12-26 */ const gulp = require("gulp") const path = require("path") const less = require("gulp-less") const browserSync = require("browser-sync").create() const reload = browserSync.reload const cleancss = require("gulp-cssnano") const autoprefixer = require("gulp-autoprefixer") const pump = require("pump") const uglify = require("gulp-uglify") const sourcemaps = require("gulp-sourcemaps") const babel = require("gulp-babel") const nodemon = require("gulp-nodemon") const changed = require("gulp-changed") const config = require("./config") const port = process.env.PORT || config.port // 將所需的資源path放到一起便于管理 const paths = { style: { src: "src/less/**/*.less", dest: "public/css/" }, script: { src: "src/js/**/*.js", dest: "public/js/" }, view: { src: "views/**/*.njk", dest: "views/" } } // 處理less的task function style(callback) { // pump提供了中斷pipe的callback return pump([ gulp.src(path.join(__dirname, paths.style.src)), // 開啟sourcemap以方便調(diào)試 sourcemaps.init(), less(), autoprefixer({ browsers: [ ">1%", "last 10 version", "iOS >= 8" ] }), cleancss(), sourcemaps.write("maps"), gulp.dest(path.join(__dirname, paths.style.dest)), reload({ stream: true }) ], callback) } // 處理js的task function script(callback) { return pump([ gulp.src(path.join(__dirname, paths.script.src)), sourcemaps.init(), babel(), uglify(), sourcemaps.write("maps"), gulp.dest(path.join(__dirname, paths.script.dest)) ], callback) } // 監(jiān)測(cè)文件修改并調(diào)用相應(yīng)task之后刷新頁(yè)面 function watch() { gulp.watch(path.join(__dirname, paths.style.src), style) gulp.watch(path.join(__dirname, paths.script.src), script) gulp.watch(path.join(__dirname, `${paths.style.dest}*.css`)).on("change", reload) gulp.watch(path.join(__dirname, `${paths.script.dest}*.js`)).on("change", reload) gulp.watch(path.join(__dirname, `${paths.view.dest}*.njk`)).on("change", reload) } // 使用nodemon啟動(dòng)node server,如果不含node就去掉 function server() { nodemon({ script: "app.js" }) browserSync.init({ proxy: `http://localhost:${port}` }) } exports.style = style exports.script = script exports.watch = watch // 同步執(zhí)行script和style task let build = gulp.parallel(script, style) // 先build,再同步啟動(dòng)node server和開啟文件監(jiān)測(cè) gulp.task("default", gulp.series(build, gulp.parallel(server, watch)))
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/101253.html
摘要:跟現(xiàn)在的類似的,把命令行工具從的核心代碼中剝離了。和都能使用獨(dú)立出來的命令行工具。是無法做出相應(yīng)的區(qū)分的。之前的中,在我們傳入一個(gè)通配符和可選參數(shù)后,我們可以再指定一個(gè)任務(wù)數(shù)組或者一個(gè)回調(diào)函數(shù)用來處理事件數(shù)據(jù)。 原文鏈接:The Complete-Ish Guide to Upgrading to Gulp 4 雖然Gulp4始終在開發(fā)中,但是你要堅(jiān)信在將來的某一天你一定可以等到它的正...
摘要:前言周日在公司的新電腦在以前配置的目錄按下時(shí)發(fā)現(xiàn)報(bào)了錯(cuò),百度了一下得知原來已經(jīng)到了版本,就花了一點(diǎn)時(shí)間去升了個(gè)級(jí),順便記下我個(gè)人使用到的配置文件新版本的不同點(diǎn),文筆和水平有限,多多見諒新引入新引入的可替換老版的和,代碼更簡(jiǎn)潔是任務(wù)監(jiān)聽是任務(wù) 前言 周日在公司的新電腦在以前gulp3.9配置的目錄按下npm install時(shí)發(fā)現(xiàn)報(bào)了錯(cuò),百度了一下得知原來gulp已經(jīng)到了4.0版本,就花了...
摘要:通過輸入文件流,將文件寫入硬盤,并輸出所有數(shù)據(jù),能繼續(xù)向下游,所以文件流可以繼續(xù)被處理并被寫入到其他地方。如果寫入文件夾不存在,就會(huì)創(chuàng)建它。第二個(gè)參數(shù),當(dāng)前任務(wù)依賴的任務(wù)列表,依賴任務(wù)在當(dāng)前任務(wù)運(yùn)行之前完成。 gulp 簡(jiǎn)介 用自動(dòng)化構(gòu)建工具增強(qiáng)你的工作流程。 通過代碼優(yōu)于配置的策略,Gulp 讓簡(jiǎn)單的任務(wù)簡(jiǎn)單,復(fù)雜的任務(wù)可管理。 利用 Node.js 流的威力,你可以快速構(gòu)建項(xiàng)目并...
摘要:生活記錄日志畫書音影,豆瓣再合適不過。卡片動(dòng)畫效果右邊框模擬光標(biāo),一個(gè)邊框顏色透明實(shí)色透明的無限動(dòng)畫寬度控制字符顯示長(zhǎng)度,使用函數(shù)將動(dòng)畫分段,產(chǎn)生間隔效果項(xiàng)目倉(cāng)庫(kù)線上效果主內(nèi)容區(qū)布局豆瓣卡片動(dòng)畫頁(yè)腳設(shè)計(jì)卡片動(dòng)畫 思路 希望有一個(gè)站點(diǎn)可以歸并技術(shù)文章、產(chǎn)品探索、生活記錄和項(xiàng)目代碼。 技術(shù)文章Hexo活躍齊全的生態(tài)的確很誘人,但通過Github管理文章、圖片資源其實(shí)并不是很優(yōu)雅。再者,存在...
摘要:開發(fā)既是一個(gè)練習(xí)如何在開發(fā)環(huán)境中寫代碼的過程,反過來,也是一個(gè)驗(yàn)證環(huán)境搭建的對(duì)不對(duì)好不好用的過程。前端調(diào)用后端接口示例為突出重點(diǎn),排除干擾,方便理解。 寫在前面 這篇文章的主要目的是學(xué)會(huì)使用koa框架搭建web服務(wù),從而提供一些后端接口,供前端調(diào)用。搭建這個(gè)環(huán)境的目的是: 前端工程師在跟后臺(tái)工程師商定了接口但還未聯(lián)調(diào)之前,涉及到向后端請(qǐng)求數(shù)據(jù)的功能能夠走前端工程師自己搭建的http路徑...
閱讀 826·2021-11-22 11:59
閱讀 3230·2021-11-17 09:33
閱讀 2308·2021-09-29 09:34
閱讀 1941·2021-09-22 15:25
閱讀 1955·2019-08-30 15:55
閱讀 1321·2019-08-30 15:55
閱讀 530·2019-08-30 15:53
閱讀 3346·2019-08-29 13:55