Visual Studio 編譯任務壓縮js和css文件


如今網站都在說優化,壓縮js和css文件就成了最基本的一種方法,js和css壓縮有很多方法,很多網站也提供了這樣的功能,也可以用YUI提供的包手動壓縮,但是這都不效率啊,能不能在vs生成部署包的時候把js和css壓縮好呢?當然可以。

首先請下載YUI Compressor,YUI Compressor是個Java庫,你需要安裝Java的運行環境,請點這里下載。(關於Java環境的配置請大家自行google,另外YUI Compressor是github的鏈接,應該被牆了,請自備爬梯工具)。

新建一個批處理文件,代碼如下:

@echo off
if "%1" == "" goto exit
if "%2" == "" goto exit
pushd "%1"
echo 正在壓縮Css文件
for /r %%i in (*.css) do call "D:\Program Files\Java\jre\bin\java.exe" -jar G:\tools\yuicompressor-2.4.7.jar -o %%i %%i
echo 正在壓縮js文件
for /r %%i in (*.js) do call "D:\Program Files\Java\jre\bin\java.exe" -jar G:\tools\yuicompressor-2.4.7.jar -o %%i %%i
::call "D:\Program Files\7-Zip\7z.exe" a %2.7z -r PackageTmp
pause
:exit
exit

 批處理的第一個參數接收項目生成部署包的路徑,vs默認路徑是:\obj\Release,第二個參數是生成壓縮包的名字(這里是生成的7z的壓縮包,如果需要生成,請把call那行的注釋去掉)。

然后就是編輯你的項目文件,比如Test.csproj,打開它,在根路徑下添加如下代碼:

<Target Name="Compressor" BeforeTargets="Package" Condition="'$(ConfigurationName)'=='Release'">
    <Message Text="Starting Compress Javascript Files and Css Files" />
    <Exec Command="call F:\Users\Documents\Compressor.bat $(ProjectDir)obj\$(ConfigurationName)\Package\ $(ProjectName)" />
</Target>

 稍微解釋下這段代碼,BeforeTargets="Package"是在打包Web文件前調用壓縮,Condition="'$(ConfigurationName)'=='Release'",只有Release模式下才壓縮,你不會想一邊Debug一邊壓縮js和css文件吧。Command命令中,請自行替換剛才建立的批處理文件的路徑,$(ProjectDir)是項目路徑,$ConfigurationName是當前的生成配置,$ProjectName是項目名稱。

現在在項目上右擊,生成部署包,然后看看js和css文件是不是都已經壓縮了呢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM