npm publish默认忽略哪些文件名模式?src目录发布异常咨询
npm publish 默认忽略规则及src目录被排除问题解答
一、npm 默认忽略的特定模式
npm发布包时,以下文件/目录会被默认忽略,除非显式加入package.json的files列表,或通过.npmignore/.gitignore的!规则取消忽略:
- 版本控制相关目录:
.git/、.svn/、.hg/ - 依赖安装目录:
node_modules/ - 日志文件:
npm-debug.log*、yarn-debug.log*、yarn-error.log* - 临时/系统文件:
*.swp、*.tmp、._*(Mac隐藏文件) - 特定配置文件:除项目根目录外的
.npmrc文件 - 若项目存在
.gitignore,npm会自动继承其中的所有忽略规则(除非存在.npmignore,此时.gitignore规则会被覆盖)
二、官方文档说明
npm官方文档在package.json的files字段、npmignore相关章节中明确了上述规则,核心发布规范均在官方文档中,无需查找非源码类额外文档。
三、src目录被排除的排查建议
src目录不属于npm默认忽略的模式,你遇到的多层嵌套src被排除的情况,大概率是以下原因:
- 项目根目录的
.gitignore中存在src/或src/**的忽略规则——npm会默认继承.gitignore的规则,即使没有.npmignore - 嵌套子目录中存在
.gitignore文件,其中的规则影响了src目录的包含 - 可通过
npm publish --dry-run命令模拟发布,查看实际会被包含的文件列表,快速定位问题
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

