javascript - 节点检查脚本是乱码并且与原始脚本不同
问题描述
我正在使用以下方式运行 Node 应用程序:
node --inspect index.js
在 Chrome 中打开 node 的 devtools 然后显示主要 index.js 的源,但其余脚本是乱码,如下所示:
(function (exports, require, module, __filename, __dirname) { "use strict";
var __cov_E6kz_9bK33ltizHRV1BcVA = (Function('return this'))();
if (!__cov_E6kz_9bK33ltizHRV1BcVA.__coverage__) { __cov_E6kz_9bK33ltizHRV1BcVA.__coverage__ = {}; }
__cov_E6kz_9bK33ltizHRV1BcVA = __cov_E6kz_9bK33ltizHRV1BcVA.__coverage__;
(....)
这些文件没有被 uglified(只用 gulp 进行 babelified),并且调试器正确显示了路径:
如您所见,文件 routes/index.js... 显示了一个路径,并且 chrome 显示的“路由”指向正确的 /dist/ 文件...但是我磁盘中的内容不同。在 devtools 中漂亮地打印脚本会显示一个带有大量额外行的脚本:
如您所见,左边的文件是第一个屏幕截图中显示的路线上磁盘上的脚本......右边是与第一个屏幕截图相同的脚本,但由 devtools 打印出来。
该应用程序是一个用 gulp 打包的 Kraken 应用程序,我认为 Node 是一个搞乱源代码的应用程序,但我从未见过这个。有没有人遇到过这个?有没有办法让“正确”的源进行调试?
解决方案
这是正常的,编译器正在为您执行此操作。帮助您调试的最好方法是添加源映射,以便您可以更轻松地调试代码。根据发生的 gulp 转换,有很多选择。对给定 x 编译器的源映射进行一些快速研究会有所帮助。
祝你好运,如果结构不好,单体 javascript 应用程序很难处理。
推荐阅读
- c# - summarize it in 1 line Linq statement?
- c - C:修改正则表达式实现以能够在字符串中的任何位置找到正则表达式
- c - 在C中清除屏幕而不打印控制字符
- python - 遍历多个不同长度的列表时超出索引
- php - How to send a POST request to sellix in php
- docker - Installing java 8 in centos 7 dockerfile
- python - 使用包含包含字典的列表的嵌套字典从字典中提取数据
- python - Do all object variables need to be defined in the constructor?
- swift - Swift Objective-C 冲突错误显示在一台机器上而不是另一台机器上
- python - 无法在 Python3 中导入 tkinter,但它在 python2 中有效(Python3.7 macOS Catalina)