国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

darkerXi / 850人閱讀

摘要:介紹這段配置是之前的版本不適配新版本后,更新到了的新寫法。在業(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

相關(guān)文章

  • 【譯】相對(duì)完整的Gulp4升級(jí)指南

    摘要:跟現(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 評(píng)論0 收藏0
  • gulp4.0升級(jí)小記

    摘要:前言周日在公司的新電腦在以前配置的目錄按下時(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版本,就花了...

    zorpan 評(píng)論0 收藏0
  • gulp入門

    摘要:通過輸入文件流,將文件寫入硬盤,并輸出所有數(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)目并...

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

    摘要:生活記錄日志畫書音影,豆瓣再合適不過。卡片動(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)雅。再者,存在...

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

    摘要:開發(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路徑...

    xioqua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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