Mvc4 regroupement, minification et AngularJS services
Est-il un moyen de personnaliser la façon dont Asp.Net MVC4 regroupement&minification fonction minifies les fichiers js?
Sens, je ne veux pas désactiver complètement minification, mais "comme c'est" c'est juste casse AngularJs.
Depuis AngularJs utilise la DI et de la Coi de l'approche de l'injection de services dans les contrôleurs, les éléments suivants:
function MyController($scope) { }
Une fois compacte, devient:
function MyController(n) { }
Normalement, ce ne serait pas un problème, mais AngularJs utilise les noms de paramètres à comprendre quel service pour l'injection. Donc, $champ d'application devrait demeurer $champ d'application, ainsi que tout autre paramètre angulaire des contrôleurs. Tout le reste, comme les variables locales, etc, doit être minimisé normalement.
Je ne trouve pas de documentation claire sur la façon de configurer Mvc4 minification, et il semble assez stupide pour qu'il soit "tout ou rien" donc je pense que je suis absent quelque chose.
Grâce.
- Techniquement, un duplicata de stackoverflow.com/questions/13032721/..., bien que je ne pense pas que la réponse est logique.
- Cette question s'est également reproduit par stackoverflow.com/questions/17410012/...
Vous devez vous connecter pour publier un commentaire.
En fait, vous pouvez (et devez!) écrire AngularJS code de sorte qu'il est "minification sûr". Les détails sont décrits dans la "Dépendance à l'Annotation" section de http://docs.angularjs.org/guide/di mais en bref, pour globalement défini les contrôleurs, vous pouvez écrire:
MyController.$inject = ['$scope'];
Veuillez noter que globalement défini les contrôleurs sont polluantes espace de noms global (voir cette pour plus de détails) et doit être évitée. Si vous déclarez un contrôleur sur un module de niveau, vous pouvez le faire minification-fort ainsi:
si vous voulez toujours de contrôler les éléments à rapetisser et ce n'est pas (ou si vous souhaitez inclure déjà une version minifiée par le plugin vendeur) il suffit de déclarer deux faisceaux, et seulement rapetisser l'un d'eux sur votre BundleConfig.cs:
dontMinify.Transforms.Clear()
Pour ceux d'entre vous qui ne veulent pas/ne peuvent pas être coincé à écrire la "minification-safe" angulaires-DI syntaxe, et ne se soucient pas des noms de variables qui est obscurci, j'ai utilisé BundleTransfomer avec Yui Js minifier - disponible via nuget:
Donne à grains TRÈS fins de contrôle sur la minification/obscurcissement. Dans l'angle de monde, il suffit de régler le obfuscateJavascript au sein de l'yui web.section de configuration de faux.