as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

设置Monorepo支持

设置Monorepo支持

“单体存储库”(monorepo) 在单个存储库内包含多个项目或程序包。Vega Studio通过npmYarn工作区支持monorepo布局。首选Yarn v2布局,但除了nohoist之外也支持v1。

借助对于monorepo的支持,您可以:

  • 打开monorepo程序包
  • 将Vega项目导入VS Code或Kiro工作区
  • 高效管理多个项目

Monorepo结构支持代码共享,可集中管理依赖项并减少项目设置步骤。

Vega SDK默认包含npm程序包管理器。如果您更喜欢使用Yarn,请参阅设置Yarn工作区

先决条件

开启或关闭monorepo支持

要开启或关闭monorepo支持,请转到Settings (设置)> Vega > Features: Monorepo(功能:Monorepo),然后选中或清除该复选框。

Vega Studio设置面板的屏幕截图,其中显示用于启用或禁用monorepo支持的“Features: Monorepo”复选框。

修改monorepo行为

  1. 转到Settings > Vega > Features: Monorepo Synchronization(功能:Monorepo同步)。
  2. 从以下选项中选择:

    • Auto(自动)– 当您在VS Code工作区中打开或添加monorepo程序包时,自动检测并在后台导入子程序包。
    • Ask for confirmation(要求确认)– 检测子程序包,但在导入之前会征得许可。

了解不同的工作流程

使用monorepo布局程序包时,工作流程在以下方面有所不同:

打开和添加程序包

  • 在不使用monorepo程序包的情况下打开工作区–在不干扰工作流程的情况下在后台识别程序包布局。
  • 使用monorepo程序包打开工作区 – 识别布局、枚举子程序包、检测Vega项目并将其添加到工作区。此行为取决于您的monorepo同步设置。请参阅修改monorepo行为
  • 向VS Code工作区添加monorepo程序包 – 与使用monorepo程序包打开工作区相同。
  • 将Vega项目添加到monorepo – 请参阅将Vega项目添加到monorepo中的说明。

构建

  • 构建整个monorepo – 使用VS Code默认构建任务。

    Vega Studio不支持构建任务的自动配置。必须人工对其进行配置。在VS Code中,您可以执行以下操作之一:

    • 转到Terminal(终端)> Run Build Task(运行构建任务)。
    • 按键盘上的Cmd+Shift+B
    • 转到命令面板并输入Tasks: Run Build Task

查看

  • VS Code Explorer视图 – 在monorepo中显示Vega项目,并在VS Code工作区中显示为单独的条目。
  • Vega Studio视图 – 正常显示Vega项目。
  • 其他工作流程 – 与非monorepo工作区相同。

将Vega项目添加到monorepo

  1. 使用monorepo的程序包目录中的模板创建一个新的Vega项目。
  2. 更新JavaScript应用的package.json中的依赖项:

    // 
    "@prefix/module-name": "file:...../prefix-module-name-0.0.1.tgz"
    // 替换为
    "@prefix/module-name": "*"
    
  3. node_modules路径添加到metro.config.js

    已复制到剪贴板。

    const path = require('path');
       
    const config = {
      projectRoot: __dirname,
      watchFolders: [
        path.resolve(__dirname, '../../packages'),
        path.resolve(__dirname, '../../node_modules')
      ],
      resolver: {
        disableHierarchicalLookup: true,
        nodeModulesPaths: [
          path.resolve(__dirname, 'node_modules'),
          path.resolve(__dirname, '../../node_modules')
        ]
      }
    };
    
  4. 删除不必要的锁定文件和程序包工件(尤其是使用Yarn时的package-lock.json文件)。
  5. 对于带有corepack的Yarn,请在package.json中指定程序包管理器:

    已复制到剪贴板。

    "packageManager": "yarn@x.y.z"
    

解决monorepo问题

如果您在Vega Studio中使用monorepo时遇到问题,请参阅解决Monorepo问题以获取解决方案。

后续步骤


Last updated: 2026年2月18日