Javascript 如何缩小knockoutjs代码文件
我在Javascript包中添加了knockoutjs文件&在发布模式下,这些文件被缩小了。在调试模式下一切正常。但是,当优化打开时&jsbundle会被visualstudio自动缩小,它会更改参数名称,从而开始引起问题。例如: 美化后缩小的文件Javascript 如何缩小knockoutjs代码文件,javascript,asp.net,asp.net-mvc-4,knockout.js,minify,Javascript,Asp.net,Asp.net Mvc 4,Knockout.js,Minify,我在Javascript包中添加了knockoutjs文件&在发布模式下,这些文件被缩小了。在调试模式下一切正常。但是,当优化打开时&jsbundle会被visualstudio自动缩小,它会更改参数名称,从而开始引起问题。例如: 美化后缩小的文件 function ProgramViewModel() { var n = this; n.Programs = ko.observableArray([]); n.SelectProgramForDetails = ko.observa
function ProgramViewModel() {
var n = this;
n.Programs = ko.observableArray([]);
n.SelectProgramForDetails = ko.observable('');
n.SelectedProgramList = ko.observableArray([]);
n.RequestedPrograms = ko.observableArray([]);
n.SelectedPrograms = ko.observableArray([]);
n.SearchSelected = ko.observable(!1);
n.ProgramName = ko.observable('');
n.CurrentPage = ko.observable(0);
n.LastHeight = ko.observable(0);
n.ProgramCatalog = ko.observableArray([{
CatalogName: 'Global Catalog',
CatalogId: 1
},
{
CatalogName: 'Area Catalog',
CatalogId: 2
}
]);
n.ColumnClicked = function (n, t) {
paginationViewModel.ColumnClicked(t);
programViewModel.GetPrograms()
};
n.ShowData = function (n) {
$('html, body').animate({
scrollTop: paginationViewModel.offset()
}, 500);
paginationViewModel.ShowData(n);
programViewModel.GetPrograms()
};
}
之前的文件
function ProgramViewModel() {
var self = this;
self.Programs = ko.observableArray([]);
self.SelectProgramForDetails = ko.observable("");
self.SelectedProgramList = ko.observableArray([]);
self.RequestedPrograms = ko.observableArray([]);
self.SelectedPrograms = ko.observableArray([]);
self.SearchSelected = ko.observable(false);
self.ProgramName = ko.observable("");
self.CurrentPage = ko.observable(0);
self.LastHeight = ko.observable(0);
// Default Catalog for now
self.ProgramCatalog = ko.observableArray([
{ CatalogName: "Global Catalog", CatalogId: 1 },
{ CatalogName: "Area Catalog", CatalogId: 2 }
]);
self.ColumnClicked = function (data, e) {
paginationViewModel.ColumnClicked(e);
programViewModel.GetPrograms();
};
self.ShowData = function (mode) {
$('html, body').animate({
scrollTop: paginationViewModel.offset()
}, 500);
paginationViewModel.ShowData(mode);
programViewModel.GetPrograms();
};
}
问题是minifier不知道作用域中的关键字,所以将同一作用域中变量的名称更改为现有名称。当该作用域中存在一个名为n
的变量时,它会再次将其他函数变量重命名为n(可能会出现问题,也可能不会太多,不太确定)
任何可以帮助更有效地缩小KnockoutJs文件的缩小工具?Uglifyjs2都有可以关闭的mangler选项,只保留变量名:谢谢Billy。让我检查一下这个,这似乎是我在寻找的。Mangler是真正的问题,那个就是将同一范围内的变量名更改为现有名称。解决方案很有效。问题是什么
self
不是敲除关键字(敲除没有任何关键字)。@RoyJ,我的坏self不存在关键字,但仍然存在问题,原因是将同一范围内的变量名称更改为现有名称。