gpt4 book ai didi

javascript - monorepo 是否应该只包含一种语言项目?

转载 作者:行者123 更新时间:2023-12-01 01:51:42 25 4
gpt4 key购买 nike

我想知道... monorepo 应该包含用相同语言编写的项目吗?我考虑将我的前端和 PHP 项目推送到 monorepo 以在它们之间共享 JSON 配置。

是否值得这样做,或者用特定语言编写的项目应该放在不同的 monorepo 中?

最佳答案

关于使用单一存储库

关于单一存储库。我认为它们应该仅限于可部署的单元和/或连接的库。如果单一存储库中的所有项目都将部署在一起,那当然可以。如果它们都是单个库/框架的扩展,那么当然。否则,按照您认为合适的方式将它们分解。

共享配置

至于共享配置详细信息 (JSON),我更喜欢一个单独的项目JUST来获取配置详细信息(请参阅 npm 中的@tracker1/config-merge)。作为发布管道的一部分,我将作为发布捆绑的一部分将最新版本输出到发行版中。这对我来说更容易。其他选项是按需克隆它,或者以其他方式引入。

值得注意的是,上面的模块只是我的配置项目的一部分,我还在输出中添加了模板,然后使用转换作为发布/部署的一部分。

多种语言

至于多种语言,就用你需要的。除了 JS 社区之外,我很少看到只使用一种语言/工具的项目。通常甚至是 make 脚本,即使如此,通常也会有 bashcmd.exepowershell 作为构建的一部分管道。

如今,无论主要语言如何,我经常倾向于将节点脚本作为我的辅助工具。 npm init 并使用 shelljs 创建跨平台脚本,这些脚本可以在我需要的任何地方(windows、linux、macos)运行,这太容易了。

<小时/>

作为引用,我使用以下内容从我的节点脚本调用外部进程...

const exec = (command, args = []) => {
const { status } = cp.spawnSync(command, args, { stdio: 'inherit' });

if (status) {
const cmd = `${command} ${args.map(a => `"${a}"`).join(' ')}`;
console.error(`\n\nSTATUS ${status} on: ${cmd}`);
process.exit(status);
}
};

关于javascript - monorepo 是否应该只包含一种语言项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com