gpt4 book ai didi

node.js - 使用 Node 检查器调试 CoffeeScript 源代码

转载 作者:搜寻专家 更新时间:2023-11-01 00:43:26 25 4
gpt4 key购买 nike

我使用 CoffeeScript 编写 Node.js 程序有一段时间了。如果我使用 Source Maps 编译源代码,则可以使用 node-inspector 进行调试。

但是,当我尝试使用 coffee-script/register 创建混合 Javascript/CoffeeScript 应用时:

#!/usr/bin/env node
require('coffee-script/register');
require('../src/client');

然后,node-inspector 显示编译后的 Javascript。

当我没有显式编译时,如何在 node-inspector 中查看实际的 *.coffee 源代码?

最佳答案

免责声明:我是 Node Inspector 的维护者

为了在 Node Inspector 中查看实际的 *.coffee 文件,您需要提供一个源映射文件,描述如何将加载到 Node/V8 运行时中的转译 javascript 映射到您的咖啡-脚本源。此外,转译后的 javascript 的文件名必须不同于原始脚本名称 (AFAIK)。

这是 require('coffee-script/register') 的问题:它将 coffee-script 源转换为 javascript 源,同时保持相同的文件名。换句话说,运行时(和 Node Inspector)看到您的 *.coffee 包含转译后的 javascript,因此它无法显示具有相同文件名的 CoffeeScript 。另外 AFAIK,咖啡编译器在这种情况下不会发出任何源映射。

我看到两种可能的方法来解决这个问题:

  1. 修改coffee-script/register中的loadFile():

    • 发出源映射并将其保存到文件
    • 将不同的文件名传递给 module._compile,例如script.coffee.js
  2. 修改 coffee-script/register 以发出嵌入式源 map 。修复 Chrome DevTools 和/或 Node Inspector 以支持嵌入式源映射。

引用资料:

关于node.js - 使用 Node 检查器调试 CoffeeScript 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26864082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com