microsoft ajax minifier 4.0,Microsoft Ajax Minifier 將 js 和 css 檔案最小化

demosay.gif先分享一下為什麼 Microsoft Ajax Minifier早就已經被寫爛了 demo 現在還要寫,原因很簡單,市面上的範例都不符合我的需求,而且我認為我的需求一定也有其他人有相同需求,因此我才寫這篇文章出來,demo的需求很簡單,在專案中並非所有 js 我都想執行最小化的工作,因此專案目錄中會有一個資料夾名稱為script放置所有的js檔案,還有一個子資料夾為JSSource 用來放置需要最小化的 js,參考了「http://www.asp.net/ajaxLibrary/AjaxMinQuickStart.ashx」改不出來怎麼讓最小化的 js 換資料夾輸出,後來又看到了「http://www.dotblogs.com.tw/asdtey/archive/2010/04/18/ajaxminifier.aspx」就決定使用 PowerShell 來玩了。

warning.gif本文是利用 Powershell來執行呼叫的媒介。如果你從來沒有使用過 PowerShell 那需要先設定使用權限,不然會無法使用,為求再來的教學流程方便,所以就先告訴各位如何開啟 PowerShell 的使用權限。

title03.gif因為demo的電腦是Windows7所以就很直接的Key PowerShell 就可以找到 PowerShell了,點選後開啟

756d3553c5bb02e52302e06348dca810.gif

warning.gif請注意點選32位元的 PowerShell因為Visual Studio 是32位元的

title03.gif直接輸入「Set-ExecutionPolicy RemoteSigned」後再輸入「Y」就可以開啟本機權限了,想了解詳細權限設定可以參考這裡「Set-ExecutionPolicy」

07f396b3365d5e2aea31496b75fe9b97.gif

demosay.gifPowerShell權限開啟後,接者就要來寫一個 ps1 檔,來操作最小化 JS (本範例只針對 js 做壓縮)

$jsPath="D:\projects\tiv\Solutions\MvcApplication\Scripts\JSSource\";

$fileList = dir $jsPath -include *.js -recurse

$oupssssPath=($jsPath+"..\");

foreach ($file in $fileList)

{

$baseName=$file.BaseName;

$fullname = $file.DirectoryName + "\" + $baseName;

'C:\Program Files (x86)\Microsoft\Microsoft Ajax Minifier 4\ajaxmin.exe' -h -js "$fullname.js" -o ($oupssssPath+$baseName+".min.js") -clobber

}

來稍微解釋一下上面這些玩意是啥,第一行的 $jsPath 這個變數是一定需要修改的,請輸入你的專案目錄位置。其他的就都可以不用管了,執行後會將你輸入的位置底下所有 js 檔作最小化的動作,然後將檔案後面加上.min 存放到上一層目錄中。

warning.gif為求示範方便請將檔案放置於C槽底下並且命名為minifile.ps1

title02.gif使用文字編輯器開啟你的專案檔(.csproj)搜尋「BeforeBuild」加上以下的敘述

怕各位不知道位置在哪貼張圖吧

0dbfd465b9cdabe9c47804400c27ebbe.gif

title02.gif這樣子當你編譯了以後就會執行剛剛上面寫的 PowerShell 來完成最小化的動作,並且會將相關資訊顯示在輸出(Output)窗格中。

title02.gif說明一下 Microsoft Ajax Minifier 4.0 版本和之前的版本一些差異

預設不會覆蓋已存在檔案必須利用 「–clobber」參數來設定覆蓋。

預設就會將區域變數重新命名(a、b、c...)如不想修改就需要使用「–rename:none」參數。

而這是預設的最小化會作的事情建議也是看一下 AjaxMinDefaultMin

demosay.gif這篇文章但書太多了,但也就是因為demo有這需求才會有產出,如果不合用還請見諒,剩下的部份就要來說一下文章不完善的部份。

首先在專案檔的設定是在每次編譯的時候都做壓縮 JS 的工作,但是編譯是很經常性的事情,因此將觸發改為 Rebuild 的時候再觸發,或是如果你的方案中有許多專案檔,那就可以放到其他的專案檔去比如說像 demo 寫 MVC 的就有一個 Helper 的專案,寫 WebForm 的也可能會有自建的Class專案放在那裡就可以加快平常編譯的速度。

PowerShell 的示範指令中並未針對 CSS 做最佳化的動作,而 Microsoft Ajax Minifier 是可以作到這點的,使用方式也很簡單,去找副檔名是 .css 的就好了....

demo 這是第一次碰 PowerShell 所以寫出來的東西或許很蠢,歡迎各位不吝賜教,至於你問我那為什麼要用 PowerShell 寫,原因很簡單!沒碰過得東西總是想玩玩嘛

25.gif

linkPage.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值