Une autre option qui n'a pas été complètement expliquée est la suivante (si le linting ou le webpack personnalisé ne sont pas la solution) :
Pour retirer les déclarations de journal du code par votre construction.
Voici donc ce que j'ai fait (j'utilise nx en plus du CLI d'Angular) :
- Ajout d'un script personnalisé qui nettoie tous les appels à console.log
utils/clean-console.log.js
const glob = require('glob');
const replace = require('replace');
// list all directories you want to scan
// (I have a nx mono.repo with multiple involved projects & libs)
[
'./apps/<app>/src/**/*.ts',
'./libs/*/src/**/*.ts',
].forEach(pattern => glob(pattern, (err, files) => {
if (err) {
throw err;
}
files.forEach(item => replace({
// change to your needs which levels you want to strip
// the levels listed are removed from code
regex: /.*console\.(log|info|debug|warn)\([^\)]*\);?.*/gm,
replacement: '',
paths: [item],
}));
}));
-
Mise à jour de package.json
pour ma commande de construction
node utils/clean-console.log.js && nx run <app>:build:prod
Cela fonctionne très bien pour moi (même pour les déclarations de journal multilignes) car j'ai un style de code cohérent. Chaque déclaration de journal est suivie d'une nouvelle ligne. Si vous n'avez pas cela, vous ne pouvez pas utiliser le script juste devant.
Btw. vous changez le code avec ceci. Mais pour moi, dans le contexte d'un pipeline, cela n'a pas d'importance puisque chaque construction sera vérifiée à nouveau et ce qui arrive au code à l'intérieur du pipeline n'a pas d'importance. Seule la sortie compilée compte...
0 votes
J'imagine que les commentaires sont déjà supprimés, avez-vous regardé le résultat ? Mais comment est-il censé savoir quels journaux sont des fonctionnalités et lesquels ne sont que des débogages ?
0 votes
Angular-cli utilise webpack sous le capot, qui fait déjà une sorte de manipulation du javascript pendant le processus d'empaquetage. Je crois qu'il y a des plugins pour webpack pour supprimer la journalisation de la console et aussi les commentaires pendant le processus de traitement, mais je ne suis pas sûr de savoir comment synchroniser cela avec angular-cli.
1 votes
Vous pouvez utiliser Gulp avec gulp-strip-debug. Consultez cet article pour plus d'informations.
1 votes
Veuillez supprimer les blocs commentés et les instructions console.log du CODE afin de préserver la santé mentale des futurs développeurs. C'est ainsi que les guerres commencent.