2010-05-13 8 views
7

Dans mon javascript, j'ai quelques bits de code spécifiquement utilisés pour le débogage que je ne veux pas inclure dans le site en ligne. Existe-t-il un moyen de commenter ces bits de code de manière à ce qu'ils s'exécutent normalement en javascript, mais que yui compresseur pense qu'ils sont des commentaires et les supprime?Dire à un compresseur YUI de supprimer un code spécifique non-commenté

Par exemple

for(key in modules) { 
    try { 
    MyApp[key].init(modules[key].params); 
    } catch (e) { 
    console.log("Module " + key + " threw an error"); 
    break; 
    } 
} 

Je voudrais être en mesure de commenter le bit console.log automatiquement lors de la compression de déployer sur le site en direct. Alors peut-être envelopper le code dans quelque chose comme

//yuiIgnore 
     console.log("Module " + key + " threw an error"); 
    //endyuiIgnore 
+0

Pouvez-vous s'il vous plaît fournir un échantillon du code que vous essayez de réduire MAIS ne sera pas retiré. Deuxièmement, pouvez-vous s'il vous plaît fournir la ligne de commande que vous exécutez pour réduire ou les paramètres de configuration (si vous utilisez le port .NET). –

Répondre

8

En ce qui concerne spécifiquement aux déclarations console.log:

J'utilise sed pour remplacer "console" avec "//console" avant de lancer le compresseur:

sed -e "s/console/\/\/console/g" originalWithConsoleStatements.js > noConsoleStatements.js 

Cette déclaration se trouve à l'intérieur d'un script shell qui lance ensuite le compresseur.

+9

Cela suppose que toutes les instructions console.log sont sur une ligne, sinon vous obtiendrez des erreurs de syntaxe, je pense ... –

+0

c'est une bonne idée! –