人们如何在本地开发飞镖包?

问题描述 投票:0回答:0

在每个项目存储库中,它们都指向其依赖项的发布版本(或远程git)。例如,在ios_transmogrify中,我们可以看到:

pubspect.yaml

现在,我想在所有4个软件包中编辑文件,并在运行程序中查看更改。 我的步骤:


igit克隆全部4个包(或它们的monorepo)

对于每个项目,我手动编辑他们的

dependencies: core_transmogrify: ^1.1.0
    指向本地路径。
  • pubspec.yaml
  • to

    package_name: <release_version>

    • 我为每个项目手动重复此过程4次。
      
    • 我运行该项目,然后我开始编辑文件。
    • 当我完成编辑时,我想推动更改。
      
    我进行过程的逆转(又称编辑
  • package_name: path: ../the/local/path
  • 再次指向其远程存储库)

    我在我推动之前做了4次!
  • 问题

    是如此的手动,容易出现人为错误。这在每个提交中都重复进行,然后是git推动。
    • 我尝试了什么
      我探索了我知道的所有选择。
      
      我使用了一个自定义的bash脚本,例如
    • pubspec.yaml
    • setup_locally.sh
    。这很乏味,只适用于一个项目。

如果我有一个依赖于

prepare_for_push.sh

yet_another_transmogrify

的新项目,我将不得不为该新项目创建两个bash文件。

我还尝试了git钩,但必须为每个项目工作区手动设置此钩子。设置不会远程存储在存储库本身中。

    我甚至尝试了github动作来修改pubspect.yaml时远程推动。但这很昂贵,而且需要在每个项目上进行设置。
  • 我希望存在的理想解决方案,但我不知道:

    如果我们可以用另一个文件覆盖特定的依赖项,那就太好了,可以说。如果包装在local.yaml文件中,则其行为将如
    core_tools
    。这里的优势是
    pubspec.yaml

    未在git中检查,并且
  • pubspect.local.yaml
  • 保持未触及。

    我知道此功能要求飞镖编译器足够聪明以进行此操作。 我的问题适用于Nodejs,Python和其他langugages。因此,如果有一种语言不可知论的工具,它将更好。

    	
    “如果我们可以用另一个文件覆盖特定的pubspec.yaml依赖性,那就太好了,”

  • 您的意思是
  • dart.dev/tools/pub/dependencies#vistionency-overrides

    多年来已经建立了多年?

  • Melos(在酒吧)也可以帮助您管理这些文件。
git dart package
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.