成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Gulp4 Koa項(xiàng)目簡單配置示例

darkerXi / 856人閱讀

摘要:介紹這段配置是之前的版本不適配新版本后,更新到了的新寫法。在業(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)測文件修改并調(diào)用相應(yīng)task之后刷新頁面
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)測
gulp.task("default", gulp.series(build, gulp.parallel(server, watch)))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101253.html

相關(guān)文章

  • 【譯】相對完整的Gulp4升級指南

    摘要:跟現(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)信在將來的某一天你一定可以等到它的正...

    leanote 評論0 收藏0
  • gulp4.0升級小記

    摘要:前言周日在公司的新電腦在以前配置的目錄按下時(shí)發(fā)現(xiàn)報(bào)了錯(cuò),百度了一下得知原來已經(jīng)到了版本,就花了一點(diǎn)時(shí)間去升了個(gè)級,順便記下我個(gè)人使用到的配置文件新版本的不同點(diǎn),文筆和水平有限,多多見諒新引入新引入的可替換老版的和,代碼更簡潔是任務(wù)監(jiān)聽是任務(wù) 前言 周日在公司的新電腦在以前gulp3.9配置的目錄按下npm install時(shí)發(fā)現(xiàn)報(bào)了錯(cuò),百度了一下得知原來gulp已經(jīng)到了4.0版本,就花了...

    zorpan 評論0 收藏0
  • gulp入門

    摘要:通過輸入文件流,將文件寫入硬盤,并輸出所有數(shù)據(jù),能繼續(xù)向下游,所以文件流可以繼續(xù)被處理并被寫入到其他地方。如果寫入文件夾不存在,就會(huì)創(chuàng)建它。第二個(gè)參數(shù),當(dāng)前任務(wù)依賴的任務(wù)列表,依賴任務(wù)在當(dāng)前任務(wù)運(yùn)行之前完成。 gulp 簡介 用自動(dòng)化構(gòu)建工具增強(qiáng)你的工作流程。 通過代碼優(yōu)于配置的策略,Gulp 讓簡單的任務(wù)簡單,復(fù)雜的任務(wù)可管理。 利用 Node.js 流的威力,你可以快速構(gòu)建項(xiàng)目并...

    kycool 評論0 收藏0
  • 項(xiàng)目記錄】個(gè)人主頁設(shè)計(jì)和實(shí)現(xiàn)

    摘要:生活記錄日志畫書音影,豆瓣再合適不過??ㄆ瑒?dòng)畫效果右邊框模擬光標(biāo),一個(gè)邊框顏色透明實(shí)色透明的無限動(dòng)畫寬度控制字符顯示長度,使用函數(shù)將動(dòng)畫分段,產(chǎn)生間隔效果項(xiàng)目倉庫線上效果主內(nèi)容區(qū)布局豆瓣卡片動(dòng)畫頁腳設(shè)計(jì)卡片動(dòng)畫 思路 希望有一個(gè)站點(diǎn)可以歸并技術(shù)文章、產(chǎn)品探索、生活記錄和項(xiàng)目代碼。 技術(shù)文章Hexo活躍齊全的生態(tài)的確很誘人,但通過Github管理文章、圖片資源其實(shí)并不是很優(yōu)雅。再者,存在...

    hiYoHoo 評論0 收藏0
  • vue + vuex + koa2開發(fā)環(huán)境搭建及示例開發(fā)

    摘要:開發(fā)既是一個(gè)練習(xí)如何在開發(fā)環(huán)境中寫代碼的過程,反過來,也是一個(gè)驗(yàn)證環(huán)境搭建的對不對好不好用的過程。前端調(diào)用后端接口示例為突出重點(diǎn),排除干擾,方便理解。 寫在前面 這篇文章的主要目的是學(xué)會(huì)使用koa框架搭建web服務(wù),從而提供一些后端接口,供前端調(diào)用。搭建這個(gè)環(huán)境的目的是: 前端工程師在跟后臺(tái)工程師商定了接口但還未聯(lián)調(diào)之前,涉及到向后端請求數(shù)據(jù)的功能能夠走前端工程師自己搭建的http路徑...

    xioqua 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<