是否有可能不在 .NET 缩小中进行处理?

is it possible to not mangling in .NET minification?

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

顺便说一句,为了以防万一,我正在尝试缩小 angular 文件,从 typescript 和常规 javascript 文件编译的文件。

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

Error: [$injector:unpr] Unknown provider: tProvider <- t <- highChartSeriesMappingService http://errors.angularjs.org/1.5.5/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20highChartSeriesMappingService [Rest of the exception trace][...]

如果我只是捆绑它们而不缩小我的文件,通过设置此指令 myScriptBundle.Transforms.Clear(),它可以正常工作。显然,这个动作也避免了变量的混淆,类...names.

为了确定发生了什么,我使用 grunt and its plugin grunt-contrib-uglify 进行捆绑和缩小。由于我用于任务的基本配置,一开始我遇到了与以前相同的问题:

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

其中 conf 是对 json 文件的引用,其中 url 个文件要缩小。但是当我将 mangle 属性 设置为 false (here you have more info about it):

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

它也很好用。这让我认为这是一些 类 名称的错位问题的根源。

如您所见,我使用 grunt 找到了一个解决方案,但我想找到一种方法来避免与 .NET 混淆。有什么想法吗?

阅读@AbdelrhmanMohamed 的 post 并再次检查我的项目文件后,我意识到这是与 angular 及其数组语法相关的问题;一些文件缺少通过数组字符串的依赖项注入,所以当这些文件最小化和函数名称损坏导致我在执行时出现异常。

总而言之,.NET 绑定和缩小过程似乎工作正常。如果您使用 angular,您只需确保所有依赖于其他模块的 类 都具有定义了这些依赖项的数组字符串。