2016-08-26 42 views
0

要捆綁和縮小我的應用程序的文件,我正在使用.NET捆綁和縮小功能(使用任何其他工具很複雜,所以我想爲此找到一個解決方案)。是否有可能不會在.NET縮小中加入?

作爲一個評論,以防萬一它可以幫助,我試圖縮小angular文件,從typescript和常規javascript文件編譯的文件。

問題是,當我執行應用程序時,我收到了一些javascript例外,主要與angular有關。我認爲這不是有用的,但也許它可以幫助,所以這是主要的例外,我得到:

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(),它工作正常。顯然,這個動作也避免了變量,類...名稱的混亂。

爲了確定發生了什麼,我使用grunt及其插件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混淆的方法。任何想法?

+1

我認爲你的問題與minifing AngularJs,有一些實踐,以避免與角度衝突,你必須遵循安全規範https://www.sitepoint.com/5-minutes-to-min-safe-angular-code -with-grunt/ –

+0

@AbdelrhmanMohamed我讀過了你在評論中發佈的鏈接,儘管我使用數組語法編寫了所有的角碼,但是在與其他開發人員共享的項目中,有一些類依賴關係注入沒有用字符串數組完成。因此,在檢查一些類並修復它們之後,現在通過.NET進行縮小工作正在發揮作用。 – christiansr85

回答

1

讀@AbdelrhmanMohamed的職位,並再次檢查我的項目的文件,我意識到,這是關係到angular及其陣列sytntax後一個問題;有些文件缺少通過數組字符串進行依賴注入,所以當這些文件被最小化時,以及函數的名字被破壞導致我的執行時間異常。總結起來,.NET bndling和縮小過程似乎工作得不錯。如果你使用angular,你只需要確保所有依賴於其他模塊的類都有數組字符串,並且定義了這些依賴關係。

相關問題