ASP.NET捆绑ScriptBundle
function StartController($scope, $location, $rootScope) {}
转换为
function StartController(n,t,i) {}
但是,由于我正在使用AngularJs,因为依赖注入仍然有效,因此在缩小时不得更改参数名称。我怎样才能确保$ scope,$ location和$ rootScope通过ScriptBundle保持这些名称的缩小,但允许在其他地方重命名参数?
答案 0 :(得分:3)
这不是你可以在内置的bundle类型上改变的东西,因为我们目前没有暴露你可以在底层转换类上调整的任何旋钮。实现这一目标的最佳方法是编写自己的IBundleTransform,在适当的设置中进行缩小,以便不重命名变量。
即。类似的东西:
public class CustomTransform : IBundleTransform {
public void process(BundleContext context, BundleResponse response) {
response.Content = MyMinifier.MinifyWithoutRename(response.Content);
}
}
BundleTable.Bundles.Add(new Bundle("~/bundles/mybundle", new CustomTransform());
答案 1 :(得分:2)
这适用于System.Web.Optimizations
nuget package 1.1
https://gist.github.com/zaus/7436601
(我已经包含了一些其他概念)
基本上,您需要编写一个新的BundleTransform / Minifier来公开CodeSettings
,以便您可以更改NoAutoRenameCollection
。
答案 2 :(得分:2)
Angular提供了一种处理缩小的方法。如果要定义控制器,可以将代码重写为:
YOUR_APP_MODULE.controller('CONTROLLER_NAME', ['$scope', '$location', '$rootScope', function($scope, $location, $rootScope){
// DO STUFF
}]);
在缩小时,这将成为:
YOUR_APP_MODULE.controller('CONTROLLER_NAME', ['$scope', '$location', '$rootScope', function(n, t, i){
}]);
您也可以使用其他角度组件进行类似的操作。