Минификатор JavaScript (например, YUI), интегрированный в ASP.NET Webdeploy Publish - PullRequest
1 голос
/ 07 октября 2010

У меня есть файл JavaScript, который я минимизирую с помощью Yahoo YUI. Когда я «публикую» проект веб-приложения, я хочу, чтобы он копировал только файл .min.js, а не оригинальный файл. Я могу использовать событие предварительной сборки для создания минимизированной версии, но как я могу предотвратить копирование файла не минимизации в «Публикация»?

Полагаю, я могу «исключить» исходный неинициализированный файл из проекта, но это не поможет, потому что я хочу редактировать файл скрипта через VS 2010, но когда я публикуюсь, я хочу, чтобы сначала запускался минификатор публиковать только это.

Любые указатели оценены

Ответы [ 2 ]

2 голосов
/ 18 октября 2010

Вы можете использовать проект Задачи сообщества MSBuild и задачу Exec для этого. Вот пример.

<?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>
1 голос
/ 07 октября 2010

Если это веб-приложение (а не веб-сайт), просто измените действие «Создать» на «Нет» в окне свойств.Это предотвратит копирование исходного файла при публикации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...