首页 > 解决方案 > Babel如何在代码中添加新行或换行符?

问题描述

我还没有找到使用 Babel 在我的代码中添加空行的方法。我有用 Babel 库解析的 javascript 代码。例如,我有以下代码:

var e = t && t.__esModule ? function () {
  return t.default;
} : function () {
  return t;
};

我需要将其转换为:

var e = t && t.__esModule ? function () {
  return t.default;
} : 
function () {
  return t;
};

我试图在函数之前插入代码

path.insertAfter(t.expressionStatement(t.stringLiteral('\n')))

但是 Babel 生成器将代码变成:

var e = t && t.__esModule ? function () {
  return t.default;
} : ("\n", function () {
  return t;
});

我需要在代码中的多个位置添加换行符,例如在使用“{”或“},”打开函数之后。我怎么能用 Babel 做到这一点?有可能有不同的方法吗?有巴别塔替代品吗?

标签: javascriptnode.jsparsingbabeljsgenerator

解决方案


正如@loganfsmyth 指出的那样,我想做一些用AST 不可能的事情。AST 会故意删除换行符和空格等信息。我正在寻找的是具体语法树(CST)或 Linter。ESLint 允许我在需要的地方添加换行符。


推荐阅读