0

也许有一些更好的解决方案。问题是有时我确实修复了快速推送,当包版本相同时它不会发布是否有任何工具可以告诉我我必须发布包,因为有一些变化?

我正在寻找一种方法来让这个工作。

版本 (A)

  • 检查 mono-repo 的 package.json 并读取文件最后一次提交 ID(通常我只在更新包版本时更新它)
  • 查找在包目录中的提交 id 之后是否有任何文件提交。
  • 如果是,则显示警告说进行了一些更改,并且在推送之前需要调整包版本

版本 (B)

  • 在 push 之前,一些 pre-push 钩子会检查哪些 mono-repos 文件被更改
  • 如果它的 package.json 版本没有被碰撞,将显示警告。
4

1 回答 1

0

用 husky pre-commit 和 pre-push 解决:

"husky": {
    "hooks": {
        "pre-push": "yarn lint && yarn test && exec < /dev/tty && yarn bump"
    }
},

和纱线凹凸是一个脚本:

shelljs 和提示

const bumpPackages = (directory) => {

    if (shell.cd(`packages/${directory}`).code !== 0) {
        shell.echo('Error: Component does not exist');
        shell.exit(1);
    }

    shell.exec('npm version patch --no-git-tag-version > /dev/null');
    shell.exec('git add package.json');
    shell.echo(`${directory} -  version bumped succesfull`);
    shell.cd('../../..');
};

循环和碰撞:

directories.forEach((element) => {
  bumpPackages(element.value);
});

和示例目录:

module.exports = [
  { title: 'ComponentA', value: 'ComponentA' },
  { title: 'ComponentB', value: 'ComponentB' },
]
于 2020-11-02T14:51:02.540 回答