是否有可能不在.NET缩小中进行修改?

时间:2016-08-26 12:23:02

标签: javascript .net bundling-and-minification

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

作为评论,以防它可以提供帮助,我尝试缩小angular文件,从typescript和常规javascript文件编译的文件。

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

  

错误:[$ injector:unpr]未知提供者:tProvider< - t< - highChartSeriesMappingService   http://errors.angularjs.org/1.5.5/ $注射器/ unpr?P0 = tProvider%20%3 C-%20吨%20%3 C-%20highChartSeriesMappingService   [异常追踪的其余部分] [...]

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

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

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

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

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

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

正如您所看到的,我使用grunt找到了一个解决方案,但我希望找到一种方法来避免使用.NET进行修改。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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