gpt4 book ai didi

javascript - 如何缩小 knockoutjs 代码文件

转载 作者:行者123 更新时间:2023-11-30 00:12:01 25 4
gpt4 key购买 nike

我在 Javascript Bundles 中添加了 knockout js 文件,在 Release模式下这些文件被缩小了。在 Debug模式下一切正常。但是当优化开启并且 JsBundles 被 Visual Studio 自动缩小时,它会更改参数名称,这会开始导致问题。示例:

美化后的缩小文件

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 选项,只保留变量名:https://github.com/mishoo/UglifyJS2#mangler-options

关于javascript - 如何缩小 knockoutjs 代码文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com