生产中的源地图。他们有必要吗?

时间:2015-11-03 08:44:23

标签: javascript gulp

我有一个用节点模块创建的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文件。

所以我的问题是。有必要将源地图放在生产环境中,前提是我们要尽可能保护代码吗?

2 个答案:

答案 0 :(得分:3)

不,如果您想使用它们来调试代码,则只需要源映射。

附注:不要担心文件中的//# sourceMappingURL=...行(如果它在缩小过程中幸存下来)。如果您打开开发工具并转到代码面板,浏览器将只尝试下载源地图,因此在正常使用中您将无法获取404缺失的地图。这不是理想的,希望你的过程能够消除它们,但如果它们在那里它们几乎是无害的。当然,如果某人 打开开发工具并转到代码面板,是的,浏览器会尝试获取文件(并且可能会失败,因为您还没有将它们投入生产)。

答案 1 :(得分:0)

  

问题是它不是“管道输出”而且我不能使用管道来创建之前使用“uglify”gulp模块(“gulp-uglify”)创建的源图,而不是其他任务。

我不完全理解你在这里描述的问题,但它似乎与你的实际问题无关,所以如果你想帮助生成源地图,请打开另一个问题。

关于你的实际问题:

  

所以我的问题是。有必要将源地图放在生产上   前提是我们希望保护代码尽可能多?

首先:不,源地图没有必需。您甚至不需要生成它们,除非您想使用它们进行调试。如果你这样做,你就会因为不提供它们而妨碍自己。

其次:保护本质上是一段开放的代码是有点没有实际意义的。当然,你可以模糊你的应用程序所做的事情,但是一个有能力和有动力的对手在任何情况下都会穿透它,并且oyu绝对没有办法阻止它。如果您担心应用程序中存在安全漏洞,请对其进行审核并修复您找到的内容!这实际上对你有帮助。