2010-10-06 2 views
1

J'ai un fichier javascript que je réduis en utilisant Yahoo YUI. Lorsque je publie le projet d'application Web, je veux qu'il copie uniquement le fichier .min.js et non l'original. Je peux utiliser un événement de pré-construction pour créer la version réduite, mais comment puis-je empêcher 'Publier' de copier le fichier non réduit? Je suppose que je peux 'exclure' le fichier original non-minifié du projet, mais cela ne serait pas utile parce que je veux éditer le fichier script via VS 2010, mais quand je publie je veux que le minifier fonctionne en premier puis publiez seulement cela.JavaScript minifier (par exemple YUI) intégré à ASP.NET Webdeploy Publier

Les pointeurs appréciés

Répondre

1

Si c'est une application Web (et non un site Web), il suffit de changer l'Action de génération Aucun dans la fenêtre des propriétés. Cela empêchera la copie du fichier d'origine lors de la publication de l'application.

+0

Oui! c'était exactement ce que je cherchais. Travaux. Je vous remercie. – jeremy

2

Vous pouvez utiliser le projet MSBuild Community Task et la tâche Exec pour ce faire. Voici un exemple.

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <yuiCompressor>java -jar Libraries\yuicompressor-2.3.6.jar</yuiCompressor> 
    </PropertyGroup> 
    <PropertyGroup> 
    <Major>1</Major> 
    <Minor>0</Minor> 
    <Build>0</Build> 
    <Revision>1</Revision> 
    <BindMinor>0</BindMinor> 
    <BindBuild>0</BindBuild> 
    <BindRevision>0</BindRevision> 
    </PropertyGroup> 
    <ItemGroup> 
    <CssFiles Include="css\site.css" /> 
    <CssFiles Include="css\gray.css" /> 
    <JsFiles Include="scripts\base.js" /> 
    <JsFiles Include="scripts\lib.js" /> 
    <JsFiles Include="scripts\project.js" /> 
    </ItemGroup> 
    <Target Name="Minimize" DependsOnTargets="Version"> 
    <!-- CSS Merge and Minimize -->  
    <Merge Mode="TextLine" 
     SourceFiles="@(CssFiles)" 
     DestinationFile="merged.css" /> 
    <Exec Command="$(yuiCompressor) --type css merged.css -o css\project-$(Revision).css" /> 
    <!-- js Merge and Minimize --> 
    <Merge Mode="TextLine" 
     SourceFiles="@(JsFiles)" 
     DestinationFile="merged.js" /> 
    <Exec Command="$(yuiCompressor) --type js merged.js -o scripts\project-$(Revision).js" /> 
    <Delete Files="merged.css" /> 
    <Delete Files="merged.js" /> 
    </Target> 
</Project> 
Questions connexes