如何使用我的 dart 包私有而不在 pub dart lang 上显示?
Posted
技术标签:
【中文标题】如何使用我的 dart 包私有而不在 pub dart lang 上显示?【英文标题】:How to use my dart packages private and not show on pub dart lang? 【发布时间】:2019-06-06 05:00:52 【问题描述】:由于我的公司协议,我有不想发布到 pub 的 dart 包。如何仅将我的 dart 包用于我的公司而不在 pub dart lang 上显示?
我已查看此链接 https://github.com/dart-lang/pub/issues/1050,但仍需要有关此的更多信息。
【问题讨论】:
【参考方案1】:如果您将包发布到https://pub.dartlang.org,它将显示出来。没有办法解决这个问题。
替代品。
你可以使用
例如存储在本地或网络驱动器上的包的路径依赖关系。 Git 对存储在 Git 存储库中的包的依赖关系 在本地或网络驱动器上 托管在 GitHub、GitLab 或任何其他 Git 服务器上 运行您自己的私人 Pub 服务器。另见
https://www.dartlang.org/tools/pub/dependencies https://github.com/dart-lang/pub_server【讨论】:
【参考方案2】:Günter Zöchbauer 的答案是正确的,但他没有提供示例。
所以要使用 pub/package/lib 而不在 pub.dev 上发布:
1.本地 - 保存在某个本地文件夹中
dependencies:
library_name:
path: /path/to/library_name
2。托管 - 推送到 Github、Gitlab 等。
dependencies:
library_name:
git: https://github.com/username/library_name
或针对确切的分支
dependencies:
library_name:
git:
url: https://github.com/username/library_name.git
ref: dev #branch name
或以精确提交为目标
dependencies:
library_name:
git:
url: https://github.com/username/library_name.git
ref: e234072340 #commit reference id
其中“library_name”必须与该 pub 的 pubspec.yaml 中声明的“name”相同。
【讨论】:
git 子模块是另一种可能性【参考方案3】:本地:
为了处理这个问题,pub 支持路径依赖。
dependencies:
transmogrify:
path: /Users/me/transmogrify
这表示 transmogrify 的根目录是 /Users/me/transmogrify。
见: https://www.dartlang.org/tools/pub/dependencies
【讨论】:
【参考方案4】:您还可以让其他人运行 pub 服务器(作为服务): https://cloudsmith.io/l/dart-repository/
虽然私有存储库是商业(付费),但公共和开源存储库是免费的。如果您正在寻找无服务器托管解决方案,这是唯一的选择(截至撰写本文时)。
【讨论】:
以上是关于如何使用我的 dart 包私有而不在 pub dart lang 上显示?的主要内容,如果未能解决你的问题,请参考以下文章
如何获取音频文件的长度而不在 Flutter/Dart 中播放
在企业(私有)环境中托管 dart/flutter 包的官方方式是啥?