2015-11-03 39 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绝对没有办法阻止这一点。如果您担心应用程序中存在安全漏洞,请对其进行审核并修复您发现的问题!这实际上会帮助你。