【问题标题】:Pulling dependencies from an internal repository via pubspec.yaml通过 pubspec.yaml 从内部存储库中提取依赖项
【发布时间】:2020-05-07 21:01:11
【问题描述】:

我在公司防火墙中,它阻止我从 pub.dev 中提取包。但是,我可以选择使用内部存储库,我可以将包从 tar.gz 文件中提取出来。

但是,在阅读 https://dart.dev/tools/pub/dependencies#hosted-packages 之后,我尝试将其添加到 mypubspec.yaml 文件中:

dependencies:
  flutter:
    sdk: flutter

  http:
    hosted:
      name: http
      url: http://repository.internal-repo.com/repository/googleapis-storage/packages/
    version: ^0.12.0+4

如果我要通过 Chrome 直接点击链接(此 url 在内部网络中)http://repository.internal-repo.com/repository/googleapis-storage/packages/http-0.12.0+4.tar.gz 包会下载为 tar.gz 文件

但是当我运行pub get:

502 notresolvable trying to find package http-0.12.0+4.tar.gz at http://repository.internal-repo.com/repository/googleapis-storage/packages/.
pub get failed (server unavailable) -- attempting retry 1 in 1 second...

我看到你可以直接从公共 Github 中提取,但是这也被我们的代理阻止了。

我在这里做错了什么还是此功能不可用?

【问题讨论】:

    标签: flutter dart proxy dependencies


    【解决方案1】:

    您链接的文档说:

    或另一个使用相同 API 的 HTTP 服务器

    I.E.您的内部服务器必须实现pub API。看来,如果你把

      http:
        hosted:
          name: http
          url: http://repository.internal-repo.com/foo/
        version: ^0.12.0+4
    

    然后 pub 向http://repository.internal-repo.com/foo/api/packages/http 发出请求,目前尚不清楚它希望在那里找到什么。

    您可能希望将 tar 文件解压缩到某个共享驱动器上,并改用 path 语法,例如(假设您已解压缩到 pub 共享的 http_12_0_4 文件夹并安装它):

      http:
        path: /Volumes/pub/http_12_0_4
    

    不需要版本,因为您已将其硬编码到文件夹名称中。

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 2013-12-11
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2015-08-13
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多