Пакетирование создает коллизии, когда JavaScript минимизирован - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть файл JavaScript с этой упрощенной формой:

var MainObj = (function($) {
    function func1() {}  // <-- minification renames to c()
    function func2() {
        function func3() {}  // <- minification renames to c()
        func1();   // <-- minification calls c() and hits func3 instead of func1
    }
}

Я добавил этот файл JavaScript в ScriptBundle в ASP.NET, и полученный минимизированный файл столкнулся. И func1, и func3 были переименованы в одно и то же имя функции c. Так что при звонке на func1 я в итоге позвонил func3.

Я исправил эту проблему, явно вызвав MainObj.func1(). Если не считать рефакторинга всего нашего кода, как мы можем сказать сборщику не создавать такого рода коллизии?

Я посмотрел на страницу Microsoft по комплектации и не увидел вариантов для настройки минификации.

1 Ответ

0 голосов
/ 05 апреля 2019

Настройка оптимизации комплекта с помощью BundleTable.EnableOptimizations

...