MSBuild-自動產生js壓縮檔

  • 332
  • 0

可根據VisualStudio專案檔(xxx.csproj)的設定, 在建置部署時的event執行需要的作業, 像compile時壓縮js檔, 或將程式用cmd指令deploy到特定主機。

相關程式及檔案

  1. VisualStudio  新增專案檔, 產生xxx.csproj
  2. MSBuild.exe  安裝VS時會自動安裝, 目前使用VS2015, 程式路徑在C:\Program Files (x86)\MSBuild\14.0\Bin
  3. yuicompressor-2.1.2.jar  yahoo的js壓縮程式

作業要項

  1. 作業一  將壓縮js檔流程作業設定在xxx.csproj
  2. 作業二  寫batch檔, 用MSBuild程式執行csproj檔

作業一

1.PropertyGroup  設定專案及相關作業路徑

<WorkShop>"D:\LGPrj\LGPrj"</WorkShop>    -- 專案路徑
<ScriptsTargetPath>"$(WorkShop)\Scripts"</ScriptsTargetPath>    -- 來源路徑
<ScriptsDestPath>"$(WorkShop)\Scripts\min"</ScriptsDestPath> -- 目的路徑
<CompressToolPath>"$(WorkShop)\tools\yuicompressor-2.1.2.jar"</CompressToolPath>  -- js壓縮jar檔位置

2.Target-Build  設定各target作業順序

案例只有一項名為CompressJS的target

<Target Name="Build">
   <CallTarget Targets="CompressJS" />
</Target>

 

3.Target  設定target作業項

 <Target Name="CompressJS">
    <Message Text="CompressJS..." />    -- target開始訊息(非必要)
    <Exec Command="java -jar $(CompressToolPath) $(ScriptsTargetPath)\common.js -o $(ScriptsDestPath)\common.min.js --charset utf-8 --nomunge" />
    <Exec Command="java -jar $(CompressToolPath) $(ScriptsTargetPath)\index.js -o $(ScriptsDestPath)\index.min.js --charset utf-8 --nomunge" />
    <Message Text="CompressJS END" />    -- target結束訊息(非必要)
  </Target>

--charset utf-8
語系設定(有中文就要設utf-8)
--nomunge
不重編區域變數名字(可能是為了壓縮檔案, 預設會重編)


作業二

cd c:/Program Files (x86)/MSBuild/14.0/Bin
msbuild D:/LGPrj/LGPrj/LGPrj.csproj


執行
VS>工具>命令提示字元>執行BATCH檔