esbuild 转换后更改文件内容

问题描述 投票:0回答:1

我想在 esbuild 完成转换后更改文件的内容。例如,

我的文件.ts

function myFunction() {
  console.log('My function was called.')
}

export default myFunction

然后 esbuild 将其转换为 (

npx esbuild --format=esm ./my-file.ts
):

function myFunction() {
  console.log("My function was called.");
}
var my_file_default = myFunction;
export {
  my_file_default as default
};

我想写一个插件来将上面的内容更改为:

function myFunction() {
  console.log("My function was called.");
}
return myFunction;

如果我在 esbuild 进行转换之前将

export
更改为
return
语句,esbuild 会抛出错误,因为它是一个模块。

我为什么要这么做?我想要一个用于服务工作者的模块系统。由于尚未实现,我自己创建了一个。它非常适合我的目的,但我想简化构建过程。我已经有了更改内容的代码。但现在我正在等待 esbuild 完成更改,然后读取 esbuild 创建的文件并通过单独的构建步骤进行更改。我宁愿这一切都只发生在记忆中。但我没有在 esbuild 中看到帖子内容更改挂钩,并且想知道我是否遗漏了某些内容。

esbuild esbuild-plugin
1个回答
0
投票

以下内容是否足够?

function myFunction() {
    console.log("My function was called.");
}

export default (() => {
    return myFunction;
})();

这和你想要的代码效果是一样的,ts和eslint都可以接受。 结果是:

function myFunction() {
  console.log("My function was called.");
}
var my_file_default = /* @__PURE__ */ (() => {
  return myFunction;
})();
export {
  my_file_default as default
};
© www.soinside.com 2019 - 2024. All rights reserved.