我有一个用节点模块创建的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 :(得分:3)
不,如果您想使用它们来调试代码,则只需要源映射。
附注:不要担心文件中的//# sourceMappingURL=...
行(如果它在缩小过程中幸存下来)。如果您打开开发工具并转到代码面板,浏览器将只尝试下载源地图,因此在正常使用中您将无法获取404缺失的地图。这不是理想的,希望你的过程能够消除它们,但如果它们在那里它们几乎是无害的。当然,如果某人 打开开发工具并转到代码面板,是的,浏览器会尝试获取文件(并且可能会失败,因为您还没有将它们投入生产)。
答案 1 :(得分:0)
问题是它不是“管道输出”而且我不能使用管道来创建之前使用“uglify”gulp模块(“gulp-uglify”)创建的源图,而不是其他任务。
我不完全理解你在这里描述的问题,但它似乎与你的实际问题无关,所以如果你想帮助生成源地图,请打开另一个问题。
关于你的实际问题:
所以我的问题是。有必要将源地图放在生产上 前提是我们希望保护代码尽可能多?
首先:不,源地图没有必需。您甚至不需要生成它们,除非您想使用它们进行调试。如果你这样做,你就会因为不提供它们而妨碍自己。
其次:保护本质上是一段开放的代码是有点没有实际意义的。当然,你可以模糊你的应用程序所做的事情,但是一个有能力和有动力的对手在任何情况下都会穿透它,并且oyu绝对没有办法阻止它。如果您担心应用程序中存在安全漏洞,请对其进行审核并修复您找到的内容!这实际上对你有帮助。