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

資訊專欄INFORMATION COLUMN

我是如何將冗長(zhǎng)的Grunt任務(wù)拆分的

honhon / 1387人閱讀

摘要:具體實(shí)現(xiàn)方法就不多說(shuō)了,重點(diǎn)是每個(gè)模塊中的配置對(duì)象能夠深度合并,合并后傳給。有興趣的同學(xué)可以看看我在的這個(gè)小項(xiàng)目,可以不關(guān)心具體實(shí)現(xiàn),到自己項(xiàng)目中直接使用,兼容了和。

寫Grunt對(duì)于很多JS程序員來(lái)說(shuō),不像寫JS,更像是寫一堆配置代碼,相信用過(guò)Grunt的人都深有體會(huì),就拿一個(gè)簡(jiǎn)答的uglify任務(wù)舉例:

grunt.initConfig({
  pkg: grunt.file.readJSON("package.json"),
  uglify: {
    task1: {
      src: "src/task1.js",
      dest: "build/task1.min.js"
    },
    task2: {
      src: "src/task2.js",
      dest: "build/task2.min.js"
    }
  }
});

隨著項(xiàng)目復(fù)雜度提升,任務(wù)會(huì)越來(lái)越多,會(huì)有task3,task4...等等,uglify的配置就顯得非常冗長(zhǎng),再加上less,coffee等任務(wù),也會(huì)有很多個(gè)task,最后Gruntfile.js越來(lái)越長(zhǎng),越來(lái)越難以維護(hù)。

這時(shí)候就想到,如果能夠?qū)⒚總€(gè)task拆分出來(lái)成為多帶帶的模塊,多帶帶的js文件,執(zhí)行grunt的時(shí)候再將這些模塊合并輸出傳給grunt.initConfig,每個(gè)任務(wù)的調(diào)理就會(huì)清晰很多,Gruntfile.js也不會(huì)很長(zhǎng),用一個(gè)tasks文件夾來(lái)存放每個(gè)task模塊,目錄結(jié)構(gòu)如下:

theProject/
|
|------Gruntfile.js
|------tasks
|        |-task1.js
|        |-task2.js
|        |-task3.js
| 

task1.js中,配置task1對(duì)應(yīng)的grunt任務(wù):

module.exports = function(grunt) {

  // 加載grunt依賴
  grunt.loadNpmTasks("grunt-contrib-uglify");
  grunt.loadNpmTasks("grunt-contrib-less");

  // 注冊(cè)task1任務(wù)
  grunt.registerTask("task1", [
    "uglify:task1",
    "less:task1"
  ]);

  gruntConfig = {
    uglify: {
      task1: {
        src: "src/task1.js",
        dest: "build/task1.min.js"
      }
    },
    less: {
      task1: {
        src: "src/task1.less",
        dest: "build/task1.css"
      }
    }
  };

  return gruntConfig;
};

這樣每一個(gè)grunt任務(wù)就從統(tǒng)一的Gruntfile.js拆分開(kāi)來(lái),對(duì)應(yīng)一個(gè)task模塊,接下來(lái)就是重寫Gruntfile.js,讓它能夠合并所有任務(wù)模塊,再配置到grunt.initConfig中去。

具體實(shí)現(xiàn)方法就不多說(shuō)了,重點(diǎn)是每個(gè)task模塊中的gruntConfig配置對(duì)象能夠深度合并,合并后傳給grunt.initConfig。

有興趣的同學(xué)可以看看我在Github的這個(gè)小項(xiàng)目,可以不關(guān)心具體實(shí)現(xiàn),clone到自己項(xiàng)目中直接使用,兼容了coffeejs。

當(dāng)我把它用到工作項(xiàng)目中,寫grunt舒服了太多,再也不比辛辛苦苦拖上拖下找代碼了。

另外,啰嗦一句,Grunt提供了很多有用的工具方法,卻經(jīng)常被我們忽略,可以在官網(wǎng)看到。

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

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

相關(guān)文章

  • 我是如何一步步“改造”redux

    摘要:但是在使用開(kāi)發(fā)的過(guò)程中還是感覺(jué)不太順手,本文將闡述我是如何對(duì)進(jìn)行一步步改造以適應(yīng)個(gè)人和團(tuán)隊(duì)開(kāi)發(fā)需求的。所以說(shuō),我們?nèi)绾卧诒WC的設(shè)計(jì)原則以及項(xiàng)目規(guī)范性上,對(duì)其進(jìn)行簡(jiǎn)化改造,是我這里需要解決的問(wèn)題。 從Vue換到React+Redux進(jìn)行開(kāi)發(fā)已經(jīng)有半年多的時(shí)間,總的來(lái)說(shuō)體驗(yàn)是很好的,對(duì)于各種邏輯和業(yè)務(wù)組件的抽象實(shí)在是方便的不行,高階組件,洋蔥模型等等給我?guī)?lái)了很多編程思想上的提升。但是在使...

    jemygraw 評(píng)論0 收藏0
  • 享受 Grunt

    摘要:這些任務(wù)包括但不限于將源代碼編譯為二進(jìn)制文件打包二進(jìn)制文件運(yùn)行測(cè)試用例發(fā)布到線上環(huán)境添加文檔或發(fā)行注釋為什么很重要呢,因?yàn)樗芄?jié)省程序員的時(shí)間。 Update: 別用 Grunt 了,用 Gulp !拜拜。 (原文發(fā)表于我的個(gè)人博客 http://frankfang.com/2013/12/29/grunt-is-awesome/ ,如有錯(cuò) 誤,還請(qǐng)賜教) 在生產(chǎn)環(huán)境中使用 Gru...

    Sike 評(píng)論0 收藏0
  • 前端構(gòu)建工具整理

    摘要:常見(jiàn)前端構(gòu)建工具的分類和對(duì)比是附帶的包管理器,是內(nèi)置的一個(gè)功能,允許在文件里面使用字段定義任務(wù)在這里,一個(gè)屬性對(duì)應(yīng)一段腳本,原理是通過(guò)調(diào)用去運(yùn)行腳本命令。 前文 端技術(shù)范圍不斷發(fā)展,前端開(kāi)發(fā)不僅限于直接編寫html,css和javascript,Web應(yīng)用日益龐大,代碼也更加龐大,因此許多新的思想(例如模塊化和工程化等)和框架(React和Vue等),以及新的語(yǔ)言(Es6 TypeSc...

    leo108 評(píng)論0 收藏0
  • webpack 使用指南-緒論

    摘要:在講解之前先回顧一下筆者在項(xiàng)目開(kāi)發(fā)中的工作流變化時(shí)代此時(shí)工作流大致為結(jié)合插件處理視圖處理樣式等庫(kù)此時(shí)由于依賴少手動(dòng)引入各種標(biāo)簽結(jié)合調(diào)試界面時(shí)代利用指令服務(wù)控制器將邏輯拆分為多個(gè)文件利用編譯會(huì)將分為全局樣式和組件樣式下載各種依賴此時(shí)任需要手動(dòng) 在講解 webpack 之前先回顧一下筆者在項(xiàng)目開(kāi)發(fā)中的工作流變化. jquery 時(shí)代 此時(shí)工作流大致為 jquery 結(jié)合插件處理視圖 bo...

    Nosee 評(píng)論0 收藏0
  • Javascript 打包工具

    摘要:所以,打包工具就出現(xiàn)了,它可以幫助做這些繁瑣的工作。打包工具介紹僅介紹款主流的打包工具,,,,以發(fā)布時(shí)間為順序。它定位是模塊打包器,而屬于構(gòu)建工具。而且在其他的打包工具在處理非網(wǎng)頁(yè)文件比如等基本還是需要借助它來(lái)實(shí)現(xiàn)。 本文當(dāng)時(shí)寫在本地,發(fā)現(xiàn)換電腦很不是方便,在這里記錄下。 前端的打包工具 打包工具可以更好的管理html,css,javascript,使用可以錦上添花,不使用也沒(méi)關(guān)系...

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

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

0條評(píng)論

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