2015-11-03 41 views
0

我有一個使用Node模塊創建的gulp任務,它調用GCC編譯器,他們稍微減少了我的JS代碼。它是節點縮小的。生產源圖。他們有必要嗎?

問題是,它不是「管道輸出」,我不能使用管道創建之前在其他任務中使用「uglify」gulp模塊(「gulp-uglify」)創建的源圖。

gulp.task('gcc', function() { 
    new compressor.minify({ 
     type: 'gcc', 
     fileIn: mainFileBundled, 
     fileOut: mainFileBundled2, 
     callback: function (err, min) { 
      console.log(err); 
      //console.log(min); 
     } 
    }); 
}); 

這是將代碼放在生產之前的最後一個任務,旨在縮小更多的js文件。

所以我的問題是。有必要在生產中放置源圖,前提是我們希望儘可能保護代碼。

+0

這裏您的問題是基於意見的。有些人會說不,有些人會說是,這取決於他們如何設計軟件。我的生產設置旨在讓我收到一個日誌,如果代碼意外失敗,會給我一個完整的堆棧跟蹤。獲取引用縮小代碼的跟蹤會使此設置無用。 – Louis

回答

3

不,你只需要源地圖,如果你想使用它們來調試代碼。


邊注:不要擔心文件中的//# sourceMappingURL=...行(如果它生存的微小的過程)。瀏覽器只會嘗試下載源地圖,如果您打開開發工具並轉到代碼面板,那麼您在正常使用中不會獲取缺失地圖的404。這並不理想,希望你的過程能夠消除它們,但是如果它們在那裏,它幾乎是無害的。當然,如果某人做了打開開發工具並進入代碼面板,是的,瀏覽器會嘗試獲取該文件(並且可能會失敗,因爲您沒有將它們投入生產)。

+0

感謝您的幫助! – berraily

0

問題在於它不是「管道輸出」,我不能使用管道創建之前在其他任務中使用「uglify」gulp模塊(「gulp-uglify」)創建的源映射。

我不完全理解你覺得這裏的問題,但它似乎是不相關的實際問題,所以如果你想用生成源地圖的幫助,請打開有關的另一個問題。

至於你的實際問題:

所以我的問題是。有必要將源地圖放在產品 上,前提是我們希望儘可能保護代碼

首先:不,必要任何源地圖。你甚至不需要生成它們,除非你想用它們進行調試。如果你這樣做,你會阻礙你自己,不讓它們可用。其次:保護本質上是一段開放的代碼是沒有實際意義的。當然,你可以混淆你的應用程序的功能,但是無論如何,一個有能力和動力的對手將會滲透到這個應用程序中,並且oyu絕對沒有辦法阻止這一點。如果您擔心應用程序中存在安全漏洞,請對其進行審覈並修復您發現的問題!這實際上會幫助你。