javascript - Babel Javascript源文件行号宏

标签 javascript babeljs line-numbers

我正在为 JavaScript 客户端代码创建一个日志子系统,并使用 babel 来预处理 ES2015 代码。我看到的获取源文件名和行号的唯一解决方案是基于从异常处理中获取调用堆栈。我想知道 Babel 或任何其他预处理器是否支持(或应该支持)某些东西符合旧的 C 预处理器概念“__ LINE__”和“__ FILE __”?如果存在的话我可以写:

mylog( "some text", anObject, __FILE__ , __LINE__) 

babel 敬请提供

mylog( "some text", anObject, "mydir/myfile.js", 135)

在后处理文件中。我可以想象在调用 babel 之前编写一个 perl 脚本来执行此操作,但让 webpack、jspm 或 mocha 通过两个预处理器传输源代码可能超出了我的理解范围。

想法/建议?

最佳答案

对于多年后通过谷歌遇到这个问题的人来说,这是当前的解决方案:

npm 包 babel-plugin-transform-line会将 __line 转换为当前源代码行号和 babel-plugin-transform-dirname-filename会将 __filename__dirname 分别转换为当前源文件名及其所在目录。

因此,安装了这些插件并将 babel 配置为使用它们后,您可以执行以下操作以获得预期结果:

mylog("some text", anObject, __filename , __line) 

关于javascript - Babel Javascript源文件行号宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027135/

相关文章:

c# - 在异常处理中显示行号

node.js - Babel 预设 ENV 问题

c# - 在富文本框中显示行号c#

javascript - JSLint 给出奇怪的 "weird relation"消息

javascript - Jquery On Paste 无法验证输入字段

javascript - babel/register 未在服务器上运行

javascript - React 无需导入即可工作

c++ - 用 C++ 计算文件行数的最简洁方法

javascript - 并行 API 请求的异步模块错误

javascript - 如何修改数组的数组,具体取决于其中的元素是否与另一个数组的数组中的元素匹配?