亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

gulp——用自動(dòng)化構(gòu)建工具增強(qiáng)你的工作流程

geekidentity / 3132人閱讀

摘要:概念之前有寫(xiě)了,現(xiàn)在重新寫(xiě)感覺(jué)二者最終結(jié)果雖說(shuō)相差無(wú)幾,但是側(cè)重點(diǎn)還是有所不同更偏向于工程化,側(cè)重于項(xiàng)目的整個(gè)流程控制,你可以二者結(jié)合,也可以分開(kāi)取舍都有利于前端項(xiàng)目的工程化構(gòu)建安裝全局安裝作為項(xiàng)目的開(kāi)發(fā)依賴安裝在項(xiàng)目根目錄下創(chuàng)建一

gulp概念
之前有寫(xiě)了webpack, 現(xiàn)在重新寫(xiě)gulp感覺(jué)二者最終結(jié)果雖說(shuō)相差無(wú)幾,但是側(cè)重點(diǎn)還是有所不同
webpack更偏向于工程化,gulp側(cè)重于項(xiàng)目的整個(gè)流程控制,你可以二者結(jié)合,也可以分開(kāi)取舍 都有利于前端項(xiàng)目的工程化構(gòu)建

安裝
1、全局安裝

  $ npm install -g gulp 

2、作為項(xiàng)目的開(kāi)發(fā)依賴(devDependencies)安裝:

  $ npm install --save-dev gulp

3、 在項(xiàng)目根目錄下創(chuàng)建一個(gè)名為 gulpfile.js 的文件:

   var gulp = require("gulp");
   gulp.task("default", function() {
     // 將你的默認(rèn)的任務(wù)代碼放在這
   });

4、 運(yùn)行 gulp:

   $ gulp

api
(1) gulp.src()

gulp.src("client/js/**/*.js") // 匹配 "client/js/somedir/somefile.js" 并且將 `base` 解析為 `client/js/`
  .pipe(minify())
  .pipe(gulp.dest("build"));  // 寫(xiě)入 "build/somedir/somefile.js"

gulp.src("client/js/**/*.js", { base: "client" })
  .pipe(minify())
  .pipe(gulp.dest("build"));  // 寫(xiě)入 "build/js/somedir/somefile.js"

(2) gulp.task()

其實(shí)gulp就是不斷起一些任務(wù)函數(shù),來(lái)運(yùn)行你的項(xiàng)目
gulp.task("copyplugin",function(){
    gulp.src("./src/plugin/**/*")
    .pipe(gulp.dest("./dev/plugin"))
 })

 gulp.task("packscss",function(){
    gulp.src("./src/styles/app.scss")
    .pipe(sass().on("error",sass.logError))
    .pipe(gulp.dest("./dev/styles"))
 })
....

(3) gulp.watch()

 用來(lái)接聽(tīng)任務(wù)函數(shù),把要接聽(tīng)的任務(wù)傳入 啟動(dòng)的時(shí)候 會(huì)根據(jù)傳入的任務(wù)進(jìn)行執(zhí)行,當(dāng)然,不會(huì)按順序
 gulp.task("watch",function(){
    gulp.watch("./src/*.html",["copyhtml"])
    gulp.watch("./src/images/**/*",["copyimg"])
    gulp.watch("./src/styles/**/*.scss",["packscss"])
 }     

(4) 當(dāng)你想直接gulp啟動(dòng)項(xiàng)目的話,會(huì)使用

 gulp.task("default",["webserver","copyhtml","copyimg","copyplugin","packscss","packjs","watch"],
 function(){
    console.log("DONE")
})

其實(shí)gulp常用的就是插件,下面介紹一下項(xiàng)目中常用的插件,從而幫你更高效的構(gòu)建項(xiàng)目
(1) 啟動(dòng)服務(wù)插件 npm i gulp-webserver -D

配置:
   引入gulp
   var gulp = require("gulp")
   
   var webserver = require("gulp-webserver")
   
   gulp.task("webserver",function(){
       gulp.src("./dev")     //編譯后的根目錄
       .pipe(webserver({
           host : "localhost",
           port : 4000,
           directoryListing : {   //啟動(dòng)項(xiàng)目顯示目錄
               enable : true,
               path : "./dev"
           },
           livereload : true
       }))
   })

(2) 編譯sass npm i gulp-sass node-sass -D

var sass = require("gulp-sass")

gulp.task("packscss",function(){
   gulp.src("./src/styles/app.scss")
   .pipe(sass().on("error",sass.logError))
   .pipe(gulp.dest("./dev/styles"))
   console.log("sass編譯啦")
})

(3) 編譯commenjs實(shí)現(xiàn)模塊化開(kāi)發(fā) npm i gulp-webpack -D

var webpack = require("gulp-webpack")

   gulp.task("packjs",function(){
       gulp.src("./src/scripts/app.js")
       .pipe(webpack({
           output : {
               filename : "app.js"  //輸出文件為 name.js
           },
           module : {        
               loaders :[      //加載器
                   {
                       test : /.js$/,    //指定加載文件的類型
                       loader : "imports-loader",  //用imports-loader解析
                       exclude : "./node_modules"  //排除不需要編譯的js文件
                   }
               ]
           }
       }))
       .pipe(gulp.dest("./dev/scripts"))
   })

(4) 解析瀏覽器不識(shí)別的require npm i imports-loader -D

       
  直接 $ gulp 即可
       bogon:guang_m macbook$ npm i imports-loader -D
       guang_m@1.0.0 /Users/macbook/Desktop/learning/third/guang_m
       └─┬ imports-loader@0.7.1 
         ├── loader-utils@1.1.0 
         └── source-map@0.5.7 
       
       npm WARN guang_m@1.0.0 No description
       npm WARN guang_m@1.0.0 No repository field.
       bogon:guang_m macbook$ gulp
       [15:01:40] Using gulpfile ~/Desktop/learning/third/guang_m/gulpfile.js
       [15:01:40] Starting "webserver"...
       [15:01:40] Webserver started at http://localhost:4000
       [15:01:40] Finished "webserver" after 21 ms
       [15:01:40] Starting "packscss"...

(5) 解析多個(gè)js文件 npm i vinyl-named -D

    gulp.src("./src/scripts/app.js")
    .pipe(name())
     .pipe(webpack({
       output: {
         filename: "[name].js"
       },
       module: {
         loaders: [
           {
             test: /.js$/,
             loader: "imports-loader",
             exclude: "./node_modules"
           }
         ]
       }

(6) 下載yo3 框架,專注于移動(dòng)端的scss npm i yo3 -D

在node_modules中找到y(tǒng)o3 復(fù)制style到項(xiàng)目src中 
習(xí)慣性的在style中創(chuàng)建app.scss 用來(lái)import一些需要的文件
,再在usage中創(chuàng)建模塊scss文件index.scss顯示頁(yè)面樣式
   
   .m-index{
       height: 100%;
       @include flexbox();
       @include flex-direction(column);
       header{
           height: .44rem;
           background: #00b38a;
       }
       section{
           background: #fff;
           @include flex();
       }
       footer{
           height:.44rem;
           background: #f6f6f6;
   
       }
   }   

(7) 加載字符串模板 npm i string-loader -D

    loaders : [
       {
           test : /.js$/,
           loader : "imports-loader",
           exclude : "./node_modules"
       },
       {
           test : /.string$/,
           loader : "string-loader"
       }
   ]    

好了 ,常用就這些了 如果有新的知識(shí)點(diǎn)后續(xù)還會(huì)補(bǔ)充.....

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/92032.html

相關(guān)文章

  • gulp入門

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

    kycool 評(píng)論0 收藏0
  • php工程獅感知的前端工作流程

    摘要:在這種背景下,誕生了很多工具很多前端工作流程。目前我們很多時(shí)候常說(shuō)的前端工程師,其實(shí)主要指的就是其工程師。所以就是來(lái)解決這些問(wèn)題的最后至此前端的一個(gè)工作結(jié)構(gòu)介紹至此結(jié)束。 這個(gè)時(shí)代不懂點(diǎn)前端知識(shí),真的沒(méi)有辦法生存。就算不會(huì)寫(xiě),也得了解它的原理吧! 最近做了一些總結(jié),之前都是迷迷糊糊,搞不清楚前端之前的相關(guān)定位。好好梳理了一下。錯(cuò)誤之處請(qǐng)各位指正。 本文主要說(shuō)的是 JavaScript ...

    binaryTree 評(píng)論0 收藏0
  • gulp構(gòu)建工具工作

    摘要:先前學(xué)習(xí)了但是總是感覺(jué)略顯復(fù)雜,并且現(xiàn)在很多公司工作流用的比較多,因此就入的坑來(lái)踩一踩,技多不壓身,霍霍霍。高效利用強(qiáng)大的工作流,快速的構(gòu)建項(xiàng)目并減少頻繁的操作。易學(xué)通過(guò)最少的,掌握毫不費(fèi)力,構(gòu)建工作盡在掌握如同一系列流管道。 先前學(xué)習(xí)了webpack,但是總是感覺(jué)webpack略顯復(fù)雜,并且現(xiàn)在很多公司gulp工作流用的比較多,因此就入gulp的坑來(lái)踩一踩,技多不壓身,霍霍霍...。...

    enrecul101 評(píng)論0 收藏0
  • Electron 打造 Win/Mac 應(yīng),從「代碼」到可下載的「安裝包」,可能比你想得麻煩一

    摘要:三配置環(huán)節(jié)目的一是為之后的環(huán)節(jié)初始化工作流參數(shù),二是準(zhǔn)備好應(yīng)用文件夾內(nèi)容即要打包的目標(biāo)文件夾做的事解析命令行參數(shù),初始化工作參數(shù),填充配置文件,把配置文件和相關(guān)依賴文件導(dǎo)入到文件夾內(nèi)合適的 首發(fā)于酷家樂(lè)前端博客,作者@摘星(segmentfault @StinsonZhao) 我們能從很多地方學(xué)習(xí)到怎么起一個(gè) Electron 項(xiàng)目,有些還會(huì)介紹怎么打包或構(gòu)建你的代碼,但距離「真正地...

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

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

0條評(píng)論

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