包的演进
一个可发布的 npm 包不只是源代码目录。消费者依赖它的运行时格式、类型声明、入口点、发布文件和兼容性承诺。这里按这些公开边界整理现代包的基础知识。
先从消费者开始
在选择打包器或模块格式前,先回答:
- 消费者使用 ESM、CommonJS,还是两者都需要?
- 包发布运行时代码、类型、CLI、配置预设还是资源?
- 需要支持哪些 Node 版本?
- 对外只暴露一个入口,还是需要明确的子路径?
这些答案定义了包的边界。工具链应该实现边界,而不是替代边界决策。
推荐目录
text
src/ 源代码
dist/ 生成的 ESM、CommonJS 与声明文件
package.json 公开 metadata 与 exports 映射
README.md 安装和使用契约使用 files 控制发布内容,并在发布前执行 npm pack --dry-run 检查实际 tarball。
