2010-10-28 17 views
2

J'utilise actuellement l'événement post-build Visual Studio 2010 pour réduire mes fichiers JavaScript. Le problème est chaque fois que j'ajoute un nouveau fichier JavaScript que je dois mettre à jour l'événement post-build. Ce que je veux faire, c'est rendre le script un peu plus flexible.Comment améliorer cet événement post-build Visual Studio qui utilise ajaxmin.exe

Structure du répertoire:

\ Scripts \

  • Script1.debug.js
  • Script2.debug.js
  • Script3.debug.js

ici est l'état actuel de mon script:

ajaxmin.exe "$(ProjectDir)Scripts\Script1.debug.js" -out "$(ProjectDir)Scripts\Script1.js" -clobber 
ajaxmin.exe "$(ProjectDir)Scripts\Script2.debug.js" -out "$(ProjectDir)Scripts\Script2.js" -clobber 
ajaxmin.exe "$(ProjectDir)Scripts\Script3.debug.js" -out "$(ProjectDir)Scripts\Script3.js" -clobber 

Je veux que ce script pour trouver tous les * .debug.js fichier rapetisser et le sortir à * .js. Comment puis-je y parvenir?

Script1.debug.js -> script1.js
Script2.debug.js -> Script2.js
Script3.debug.js -> Script3.js

Répondre

3

N'utilisez pas d'événement de post-construction. Après l'installation de l'outil, une tâche MSBuild a été ajoutée qui exécute le minifier automatiquement pour un fichier .js dans votre projet. Vous avez besoin d'un peu de chirurgie mineure dans le dossier du projet. Les détails sont expliqués dans ce blog post.

+0

C'est exactement ce que je cherchais !! Je vous remercie. – sgmeyer

0

Créez un fichier script batch pour effectuer la tâche et appeler le fichier de commandes à partir de votre événement PostBuild.

+0

Sheen, ce script est déjà dans un fichier batch. J'ai juste besoin de savoir comment écrire le script nécessaire pour résoudre le problème décrit. Ce n'est pas une question d'endroit où le script va vivre (batch ou build textbox). – sgmeyer

1

Essayez ceci:

@echo off 

for /r "js\" %%i IN (*.js) do (
    call :Sub %%~fi 
) 

:Sub 
set debug=%* 
set release=%debug:.debug=% 
AjaxMin.exe -hc "%debug%" -o "%release%" -clobber 

Trouver tous javascript (* .js) fichiers dans le dossier "js \" puis retirer ".debug" du nom de fichier (Replace réellement avec une chaîne vide) et exécutez AjaxMin