javascript源码图:保持地图文件本地只用于调试生产javascript

时间:2013-03-27 14:28:59

标签: javascript google-chrome source-maps

我想调试生产网站,但我不想在服务器上上传地图文件(出于隐私原因,因为它是公开的吗?)。

有可能吗?

3 个答案:

答案 0 :(得分:17)

我不相信任何浏览器目前都允许从本地文件中按需加载源映射,所以你必须以某种方式将源映射放在网上。

一种解决方案可能是创建一个.htaccess文件(或类似的,如果您不使用Apache),它限制对源图(和原始源文件)的访问,而不是来自本地网络的客户端。

您应该意识到,如果您出于安全原因想要阻止访问源地图,那么您将实现的只是一种虚假的安全感。 Javascript是公开的,即使它被缩小和加密,也很容易解密它。 将任何敏感数据放入您的javascript中。即使你缩小并加密也不行。

答案 1 :(得分:5)

以下内容可能对您有用

Multi-level Source Maps - CSS Ninja

该链接还解释了使用UglifyJS2可以指定输入源映射。但是,我没有使用本地输入源进行测试

此外,您可以尝试在本地托管该文件并更改hosts文件,以便将local.mydomain.com指向localhost。然后将local.mydomain.com/js/my-orig-js-file.js指定为源根

答案 2 :(得分:0)

另一种解决方案是在服务器上上传映射文件和缩小的js,并在本地保存原始js文件。然后修改你的地图文件:

{
    "version":3,
    "sources":["http://localhost/library.js"],
    "names":["example","console","log"],
    "mappings":"AAAA,QAASA,YACRC,QAAQC,IAAI","file":"script.min.js"
}