日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)javascript|JQuery → nodejs版本的腳本壓縮和compo工具怎么使用?

      nodejs版本的腳本壓縮和compo工具怎么使用?

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2012/5/29 17:43:32字體大。A-A+

      作者:佚名點(diǎn)擊:32次評論:0次標(biāo)簽: nodejs

      nodejs編輯器V1.02 官網(wǎng)綠色版
      • 類型:文本編輯大。1.8M語言:中文 評分:5.0
      • 標(biāo)簽:
      立即下載

      對于前臺開發(fā)而言,為了降低文件大小,js文件和css文件的壓縮和組合幾乎是默認(rèn)的規(guī)矩。
      我們利用YUI Compressor 和 google Compiler 可以很容易的完成文件的壓縮。 甚至 yui compressor 本身都已經(jīng)支持 多文件的批量壓縮。
      但是,為了更好的處理這些機(jī)械化的事情,我們通常還是需要腳本來輔助,讓這些工作可以更好的自動化,可配置化。

      網(wǎng)上有很多類似的腳本工具,或者有的也已經(jīng)編譯成了可視化的工具來使用。

      我自己以前也寫過python版本的,也用過同事寫的類似的腳本,基本也都是python版本的。鑒于大多數(shù)前端的攻城師們對js更為熟悉,所以,這里也提供一個(gè)簡易的nodejs 版本的。下午花了3個(gè)小時(shí)寫的。

      NodeCC –> Node Compressor and Compoer

      代碼很簡單,基本就是讀文件,寫文件,調(diào)用系統(tǒng)jar命令 使用 yuicompressor 壓縮文件。
      源碼托管在:github.com/hongru/nodeCC 上,100行左右。

      編碼中需要注意的幾個(gè)地方】

      nodejs中fileSystem buffer的概念,簡單的可以理解成文本數(shù)據(jù)流,所以,為了得到我們常見的文本,注意 readFile 后 toString的使用。

      生成新文件時(shí),路徑是否存在的判斷,如果不存在,生成指定目錄時(shí),由于node本身的mkdir不支持多級目錄,所以這里需要自己來處理多級目錄的遞歸生成。
      有兩種方式,一種是利用child_process 創(chuàng)建一個(gè)子進(jìn)程調(diào)用系統(tǒng)命令 mkdir -p.
      另一種就是分析路徑,一級一級遞歸創(chuàng)建目錄。代碼參考https://gist.github.com/2817910

      /* mkdir -p for node */  

      var fs = require('fs'),  

          path = require('path');  

      function mkdirpSync (pathes, mode) {  

          mode = mode || 0777;  

          var dirs = pathes.trim().split('/');  

          if (dirs[0] == '.') {  

              // ./aaa  

              dirs.shift();  

          }  

          if (dirs[0] == '..') {  

              // ../aaa  

              dirs.splice(0, 2, dirs[0] + '/' + dirs[1]);  

          }  

          dirs.length && mkdir(dirs.shift());  

          // mkdir  

          function mkdir (d) {  

              if (!path.existsSync(d)) {  

                  fs.mkdirSync(d, mode);  

              }  

              dirs.length && mkdir(d + '/' + dirs.shift());  

          }  

      }  

      // eg  

      //mkdirpSync('hongru/me');  

      通過child_process 的spawn 來調(diào)用系統(tǒng)命令,比如 ls, java 等。然后通過stdout 和 stderr 來監(jiān)聽獲得 命令所返回的log或者error信息。

      【使用方法】

      當(dāng)然,因?yàn)槭莕odejs版本的,所以自然需要安裝nodejs,官方有提供詳細(xì)說明

      因?yàn)橛昧薺ar包 yuicompressor.jar, 所以,需要安裝 JAVA的sdk,安裝過程也很簡單,不會的搜一下即可。

      最后,關(guān)于config.json 文件的配置,很簡單,都是兩個(gè)字段,“source”和“target”,source代表源路徑文件,target表示壓縮之后生成的文件路徑。
      支持目錄級別。
      另外,如果source字段為一個(gè)數(shù)組的話,會將這個(gè)數(shù)組里面的文件按照順序合并,然后壓縮生成到指定target的路徑。

      所以,config.json看起來會像是這個(gè)樣子:

      {  

          "css-test": {  

              "source": "test/css/",  

              "target": "test/public/css/"  

          },  

          "normal-file-compress": {  

              "source": "test/test.js",  

              "target": "test/test.min.js"  

          },  

          "normal-dir-compress": {  

              "source": "test/js/",  

              "target": "test/public/js/"  

          },  

          "compress-and-merge": {  

              "source": [  

                  "test/js/a.js",  

                  "test/js/b.js"  

              ],  

              "target": "test/public/js/ab.js"  

          }  

      }  

      將帶有 yuicompressor.jar 的tools/ ,主腳本 nodecc.js, 以及配置好的config.json 放置在同一目錄下,然后執(zhí)行

      node nodecc.js  

      即可。

      好了,工具很簡單,代碼也很簡單,希望能給有需要的同學(xué)提供一點(diǎn)點(diǎn)幫助

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)