`

根据压缩后的行列数和sourcemap反向定位源码

 
阅读更多

sourcemap文件存储的是JS压缩前和压缩后的映射关系,map文件内容本身就是个json文件。

json格式如下:
   

 

 

    version 版本号

    sources存储的是各个依赖的子文件列表
    sourcesContent存储的是各个依赖的子文件源码

    其他几个字段暂时还没研究,不过暂时也不需要用到
 

    npm上有对应的sourcemap包,可以用于解析.map文件。代码如下:
    

var fs = require('fs'),
  path = require('path'),
  sourceMap = require('source-map')

// 要解析的map文件路径./test/vendor.8b1e40e47e1cc4a3533b.js.map
var GENERATED_FILE = path.join(
  '.',
  'test',
  'vendor.8b1e40e47e1cc4a3533b.js.map'
)
// 读取map文件,实际就是一个json文件
    var rawSourceMap = fs.readFileSync(GENERATED_FILE).toString();
    // 通过sourceMap库转换为sourceMapConsumer对象
    var consumer = await new sourceMap.SourceMapConsumer(rawSourceMap);
    // 传入要查找的行列数,查找到压缩前的源文件及行列数
    var sm = consumer.originalPositionFor({
        line: 2,  // 压缩后的行数
        column: 100086  // 压缩后的列数
      });
    // 压缩前的所有源文件列表
    var sources = consumer.sources;
    // 根据查到的source,到源文件列表中查找索引位置
    var smIndex = sources.indexOf(sm.source);
    // 到源码列表中查到源代码
    var smContent = consumer.sourcesContent[smIndex];
    // 将源代码串按"行结束标记"拆分为数组形式
    const rawLines = smContent.split(/\r?\n/g);
    // 输出源码行,因为数组索引从0开始,故行数需要-1
    console.log(rawLines[sm.line - 1]);

    最后输出了对应的行源码:


 

 

  • 大小: 77.7 KB
  • 大小: 115.6 KB
  • 大小: 147.3 KB
  • 大小: 10.4 KB
分享到:
评论

相关推荐

    Java实现的反向代理程序(源码版)

    使用Java编写的反向代理程序(源代码),通过简单的参数配置即可实现某些特定站点的反向代理,并在此过程中改变一些站点的特定行为。例如:允许特点站点跨域访问被代理的站点,或者屏蔽被代理站点识别请求访问客户端...

    安卓GPS定位源码

    在基于ArcGIS的定位应用中,ArcGIS Runtime SDK for Android是一个强大的工具,它允许开发者创建具有地图查看、地理编码、地理分析和定位等功能的移动应用。ArcGIS的定位服务不仅支持GPS,还支持其他定位技术,如...

    7z压缩管理软件1.0易语言源码.rar

    2. 压缩模块:实现LZMA算法,将原始数据转换为压缩后的7z格式。 3. 解压模块:反向执行压缩过程,从7z文件中恢复原始数据。 4. 用户界面模块:提供图形用户界面,允许用户选择文件或文件夹进行压缩和解压缩操作,...

    实现简单、压缩率很高的压缩程序源码

    在实际应用中,根据数据特性选择合适的压缩算法至关重要,而“slimox”作为一个优秀的源码实现,提供了深入学习和实践压缩技术的平台。 总的来说,“slimox”压缩程序通过区间编码技术实现了较高的压缩率,对于那些...

    androidGPS及WIFI基站定位坐标源码.zip

    源码可能实现了`FusedLocationProviderClient`,它是Google Play服务提供的融合定位接口,能智能地根据当前环境和需求选择最佳定位源。 4. 权限管理: 在Android 6.0及以上版本,需要在运行时动态请求定位权限,这...

    lz77压缩算法源码

    UZIP程序需要正确解析ZIP文件的结构,识别出LZ77编码的部分,并进行反向查找和替换,最终得到未压缩的数据。 在给定的"GNUZIP"文件中,可能包含了使用C或其他编程语言实现的LZ77压缩和UZIP解压缩的源代码。通过阅读...

    RTX反向登录源码

    RTX反向登录是一种在企业内部网络环境中的身份验证技术,它主要用于提高用户访问企业内部应用系统的便捷性。RTX,全称为Real Time Collaboration(实时协作),是腾讯公司推出的一款企业级即时通讯软件,用于提升...

    MyBatis反向工程源码

    在深入理解这个源码之前,我们先来了解一下反向工程的基本概念和流程。 反向工程,也被称为逆向设计,通常是指从现有的数据库结构出发,生成与之对应的业务模型。在MyBatis中,反向工程主要是指根据数据库中的表...

    lzo压缩算法源码

    LZO(Lempel-Ziv-Oberhumer)压缩算法是一种快速、轻量级的数据压缩算法,由V....如果你想在你的项目中使用LZO,可以通过阅读源码了解如何调用压缩和解压缩函数,以及如何配置和优化LZO以适应特定需求。

    机器学习课程作业-基于matlab实现神经网络的反向传播算法,并将其应用于手写数字识别任务(matlab完整源码).zip

    机器学习课程作业_基于matlab实现神经网络的反向传播算法,并将其应用于手写数字识别任务(matlab完整源码).zip 机器学习课程作业_基于matlab实现神经网络的反向传播算法,并将其应用于手写数字识别任务(matlab完整...

    如何自定义反向传播源码paddlepaddle

    如何自定义反向传播源码paddlepaddle

    lzw数据压缩算法C语言源码

    LZW(Lempel-Ziv-Welch)数据压缩算法是一种广泛应用的无损压缩方法,由Abraham Lempel、Jacob Ziv和W. Terry Welch三位科学家在1977年提出。它主要通过构建一个动态编码表来实现对输入数据的高效压缩,尤其适合文本...

    基于Netty框架的Java内网穿透与反向代理工具设计源码

    该项目是一款基于Netty框架开发的Java内网穿透与反向代理工具设计源码,总计包含117个文件,涵盖70个Java源文件、9个PNG图片文件、8个XML配置文件、4个Markdown文件、4个CRT证书文件、3个HTML文件以及少量其他类型...

    GoogleMap地图源码_ios源码

    通过研究这个【GoogleMap地图源码_ios源码】,开发者可以学习到如何高效地集成Google Maps功能,同时了解如何根据实际需求进行定制和优化,提升应用的用户体验。这个源码库对于任何希望在iOS应用中集成地图功能的...

    基于反向传播算法实现的神经网络和小波神经网络源码+项目说明.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目...基于反向传播算法实现的神经网络和小波神经网络源码+项目说明.zip

    数控机床重复定位精度和反向间隙指导说明.pdf

    数控机床的重复定位精度和反向间隙是衡量其性能的重要指标,对于精密加工至关重要。本文主要探讨了这两个概念,以及如何进行检测和处理。 一、重复定位精度 1. 定义:重复定位精度是指在一定行程(如200mm-300mm)...

    基于纯numpy实现的人工神经网络及反向传播算法源码+项目说明.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...基于纯numpy实现的人工神经网络及反向传播算法源码+项目说明.zip

    Android 基站定位源码.zip源码资源下载

    通过对这个源码的学习,开发者可以掌握Android基站定位的基本原理和实践,提升在没有GPS信号或者GPS信号弱的情况下定位的能力。同时,也能深入了解Android系统如何与网络服务交互,以及如何在Android应用中高效地...

    搜索引擎收录查询与反向链接查询源码 v2.0.rar

    3、搜索引擎收录查询与反向链接查询源码具有自动查询功能,提高网站排名,当您查询网址后无需关闭,最小化即可实现自动查询,在您的站长统计报表里面可以看到您网站的来路域名与来路页等明显增加; 4、代码非常小巧...

    基于BP神经网络的图像压缩解压缩算法仿真-源码

    在解压缩阶段,压缩后的编码通过网络反向传播,得到重构的图像。由于BP神经网络的非线性特性,它可以较好地逼近复杂的图像特征,从而在保持较高图像质量的同时实现有效的压缩。 BP神经网络的训练过程包括初始化权重...

Global site tag (gtag.js) - Google Analytics