semantic-release无视.gitignore提交dist和docs目录的问题求助
解决semantic-release提交.gitignore忽略目录的问题
问题原因
你配置的@semantic-release/git插件里,assets字段明确指定了要提交dist/**和docs/**——这个插件的设计就是强制提交指定的资产文件,不受.gitignore规则限制,所以哪怕你在.gitignore里忽略了这两个目录,它还是会把它们推送到仓库。
解决方案
修改semantic-release配置,移除git插件中的dist和docs
把@semantic-release/git的assets列表里的"dist/**"和"docs/**"删掉,只保留需要提交的文件(比如CHANGELOG.md)。修改后的配置如下:"release": { "branches": [ { "name": "main" }, { "name": "develop", "channel": "beta", "prerelease": "beta" } ], "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", [ "@semantic-release/changelog", { "changelogFile": "CHANGELOG.md" } ], "@semantic-release/npm", "@semantic-release/github", [ "@semantic-release/git", { "assets": [ "CHANGELOG.md" ], "message": "chore(release): set `package.json` to ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ] ] },确保NPM包包含dist文件
检查你的package.json里的files字段,确认已经包含dist目录的文件,比如:"files": [ "dist/**/*" ]或者如果用
.npmignore,不要把dist目录写进去,这样NPM发布时会正确打包dist里的内容,不会因为git不提交而影响包的发布。单独处理docs的发布(如果需要)
如果你的docs需要部署到GitHub Pages或者其他平台,不要通过semantic-release的git插件提交,改用专门的Action(比如peaceiris/actions-gh-pages)来单独部署,这样既不会把docs提交到主分支,也能完成文档发布。
内容的提问来源于stack exchange,提问作者Hershizer33
相关产品推荐
相关产品推荐

