发布 npm 包前,先用 npm pack --dry-run 看实际会带上什么

32 次浏览1 条回复

有时 .npmignore、files 字段或构建目录改了,发布包里会悄悄多出源码、测试文件,甚至把不该带的配置一起打进去。可以先在项目根目录检查:

npm pack --dry-run

它不会生成压缩包,但会列出将要发布的文件和大致体积。想看最终包内容,也可以实际打一个临时包:

包=$(npm pack --silent)
tar -tf "$包"
rm "$包"

环境:Node.js 18+、npm 9+。npm publish --dry-run 也能做发布前校验,不过我觉得先看文件清单更直观。CI 里可以把关键路径写成断言,避免某次构建配置变化后把不需要的目录带进包里。

CI 里还可以用 npm pack --dry-run --json,让输出变成结构化数据,再检查 files 里有没有意外的 .env、测试目录或源码映射文件。比直接 grep 普通输出稳一点。另一个小细节是,发布前最好在干净的构建目录里跑一次,避免本地残留文件让检查结果失真。