dev.to | 📄 原文链接 | 2026-10-29 收录

我的开源项目:Codegen,让文件在构建时被程序写出来

来源:dev.to — 2026-10-28

📋 概述

这是「我的开源项目」系列的最后一篇,主角是一个小而无聊、却遍布作者自己所有工具链的项目 Codegen。一句话说清:.codegen 文件就是一个 Node.js 模块,它会写出另一个模块——你导出一个函数,函数返回一个字符串,这个字符串就是打包器接下来要处理的模块源码。也就是说,你可以在构建时用完整的 Node.js 能力,编程决定一个文件在应用眼里长什么样。应用永远看不到那个 require、package.json 或函数本体,只看到最终的两行 const。机制在各处一致:代码 import 一个 .codegen 文件,打包插件识别扩展名后在 Node 里执行它,导出的函数(可同步可异步,所以读文件、调接口都行)返回的字符串成为模块源码。函数还会拿到 this.name、this.options 和 this.addDependency,后者是 watch 模式能正确重跑的关键。

🔑 核心要点

💡 金句

“A .codegen file is a Node.js module that writes another module.”
译:一个 .codegen 文件,就是一个会写出另一个模块的 Node.js 模块。
← 返回 dev.to 首页