MVC 缩小似乎会创建重复的变量名称

Phi*_*ord 7 asp.net asp.net-mvc bundling-and-minification

这个问题似乎或多或少与这个问题重复,但那个问题没有收到答案,而且已经有两年多了,所以我不知道协议是什么(我试图找出答案)。

不管怎样,我已经编写了一个 ASP.NET MVC5 Web 应用程序,并且在调试中一切正常。使用发布配置发布到服务器后,我开始看到错误“未捕获的引用错误:初始化之前无法访问'n'”。

经过几个小时的代码搜索后,我想我已经隔离了这个问题。我有这个小函数(它是一个 Knockout 视图模型,但这无关紧要):

eventIndexViewModel = function (params) {
    let self = this;

    // Map values from params object to properties of self
    for (const [key, value] of Object.entries(params)) {
        self['_' + key] = value;
    }

    self.eventsView = ko.observable(self._eventsView);
    self.calendarToggleButtonClass = ko.pureComputed(function () {
        return self.eventsView() === "calendar" ? "active" : "";
    });
    self.tableToggleButtonClass = ko.pureComputed(function () {
        return self.eventsView() === "table" ? "active" : "";
    });
};
Run Code Online (Sandbox Code Playgroud)

缩小并发布到服务器后,如果我在开发工具控制台中查看源代码,它看起来像这样:

eventIndexViewModel = function(n) {
    let t = this;
    for (const [n,i] of Object.entries(n))
        t["_" + n] = i;
    t.eventsView = ko.observable(t._eventsView);
    t.calendarToggleButtonClass = ko.pureComputed(function() {
        return t.eventsView() === "calendar" ? "active" : ""
    });
    t.tableToggleButtonClass = ko.pureComputed(function() {
        return t.eventsView() === "table" ? "active" : ""
    })
}
Run Code Online (Sandbox Code Playgroud)

在这个特定的实例中以这种方式映射对象的属性有点过分了params,但是我有更大的视图模型,在同一个项目中有更多的属性,我想保持它们的代码一致,所以就用它吧。

除非我误解了某些内容,否则缩小版本已将变量params语句key的变量重命名为,我认为这就是导致我的错误的原因。当然,该语句的那一行就是抛出错误的地方。fornfor

我是否正确理解了这个问题的原因?如果是这样,这是缩小过程中的错误吗?不管怎样,我该如何解决它?