You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

semantic-release无视.gitignore提交dist和docs目录的问题求助

解决semantic-release提交.gitignore忽略目录的问题

问题原因

你配置的@semantic-release/git插件里,assets字段明确指定了要提交dist/**和docs/**——这个插件的设计就是强制提交指定的资产文件,不受.gitignore规则限制,所以哪怕你在.gitignore里忽略了这两个目录,它还是会把它们推送到仓库。

解决方案

  1. 修改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}"
                }
            ]
        ]
    },
    
  2. 确保NPM包包含dist文件
    检查你的package.json里的files字段,确认已经包含dist目录的文件,比如:

    "files": [
        "dist/**/*"
    ]
    

    或者如果用.npmignore,不要把dist目录写进去,这样NPM发布时会正确打包dist里的内容,不会因为git不提交而影响包的发布。

  3. 单独处理docs的发布(如果需要)
    如果你的docs需要部署到GitHub Pages或者其他平台,不要通过semantic-release的git插件提交,改用专门的Action(比如peaceiris/actions-gh-pages)来单独部署,这样既不会把docs提交到主分支,也能完成文档发布。

内容的提问来源于stack exchange,提问作者Hershizer33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:31:21