生产源地图。有必要吗?

问题描述 投票:0回答:2

我有一个使用 Node Module 创建的 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 文件。

所以我的问题是。在我们希望尽可能保护代码的前提下,是否有必要将源映射投入生产?

javascript gulp
2个回答
5
投票

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


旁注:不必担心文件中的

//# sourceMappingURL=...
行(如果它在缩小过程中幸存下来)。仅当您打开开发工具并转到代码面板时,浏览器才会尝试下载源地图,因此在正常使用中不会因缺少地图而收到 404 错误。这并不理想,希望您的流程能够消除它们,但如果它们存在,则基本上是无害的。当然,如果有人打开了开发工具并转到代码面板,是的,浏览器会尝试获取该文件(并且可能会失败,因为您还没有将它们投入生产)。


0
投票
问题是它不是“管道输出”,我无法使用管道来创建之前在其他任务上使用“uglify”gulp 模块(“gulp-uglify”)创建的源映射。

我不完全理解您在这里描述的问题,但它似乎与您的实际问题无关,因此如果您需要生成源映射的帮助,请就此提出另一个问题。

至于你的实际问题:

所以我的问题是。有必要将源地图投入生产

前提是我们要尽可能保护代码

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

其次:保护本质上是开放的代码是没有意义的。当然,您可以混淆您的应用程序的功能,但无论如何,一个有能力且积极主动的对手都会渗透它,并且您绝对无法阻止这种情况的发生。如果您担心应用程序中存在安全缺陷,请对其进行审核并修复您发现的问题!这实际上会对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.