我想在 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 中看到帖子内容更改挂钩,并且想知道我是否遗漏了某些内容。
以下内容是否足够?
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
};