是否有可能在.net缩小中不发生变形?

is it possible to not mangling in .NET minification?

本文关键字:变形 有可能 net 缩小 是否      更新时间:2023-09-26

为了捆绑和缩小应用程序的文件,我使用。. NET捆绑和最小化功能(使用任何其他工具都很复杂,所以我想找到一个解决方案)。

作为一个评论,只是以防万一它可以帮助,我试图缩小angular文件,从typescript和常规javascript文件编译的文件。

问题是,当我执行应用程序时,我得到了一些主要与angular相关的javascript异常。我认为这是没有用的,但也许它可以帮助,所以这是我得到的主要异常:

错误:[$injector:unpr]未知提供商:tProvider <- t <- highChartSeriesMappingServicehttp://errors.angularjs.org/1.5.5/$喷射器/unpr ? p0 = tProvider % 20% 3 c - 3 c % 20 t % 20% % 20 highchartseriesmappingservice[剩余的异常跟踪][…]

如果我只是捆绑它们而不缩小我的文件,通过设置这个指令myScriptBundle.Transforms.Clear(),它工作得很好。显然,此操作还避免了变量、类…名称的混淆。

为了确定发生了什么,我使用grunt和它的插件grunt-contrib-uglify来捆绑和最小化。一开始我遇到了和以前一样的问题,因为我用于任务的基本配置:

      uglify: {
            options: {
                preserveComments: false
            },
            myScript: {
                files: {
                    'myScript.min.js': conf.myScript
                }
            }
        }

其中conf是对json文件的引用,包含要缩小的文件的url。但是当我将mangle属性设置为false时(这里你有更多关于它的信息):

      uglify: {
            options: {
                preserveComments: false,
                mangle: false
            },
            myScript: {
                files: {
                    'myScript.min.js': conf.myScript
                }
            }
        }

它也工作得很好。这使我想到问题的根源是一些类名的混乱。

正如你所看到的,我使用grunt达成了一个解决方案,但我想找到一种方法来避免与.NET混淆。任何想法?

在阅读@AbdelrhmanMohamed的帖子并再次检查我的项目文件后,我意识到这是一个与angular及其数组sytntax相关的问题;有些文件缺乏通过数组字符串的依赖注入,所以当这些文件被最小化和函数名被打乱时,会导致我在执行时出现异常。

总而言之,. net绑定和最小化过程似乎工作得很好。如果你使用angular,你只需要确保所有依赖于其他模块的类都有定义了依赖项的数组字符串。