如何从 Dart 包的 pub 发布中排除文件?

Posted

技术标签:

【中文标题】如何从 Dart 包的 pub 发布中排除文件?【英文标题】:How to exclude files from pub publish for Dart packages? 【发布时间】:2020-09-21 05:46:39 【问题描述】:

有没有办法从pub publish 中排除某些文件或目录以用于 dart 包?

我正在发布一个包含这么多屏幕截图的包。我希望他们上传到 GitHub,而不是 Pub.Dev。这样做的目的是减小包的大小。

【问题讨论】:

【参考方案1】:

您有三个选项可以将文件或目录排除在发布到 pub.dev 之外。

    将您的文件或目录添加到.pubignore.gitignore 文件中。

    通过给它一个以.(点)开头的名称来隐藏您的文件或目录

    使用packages 名称创建一个新目录并将您的文件放在那里。

如果一个目录同时包含.pubignore 文件和.gitignore 文件,dart pub publish 将不会读取该目录的.gitignore 文件,即您可以通过创建.pubignore 文件来否决.gitignore 文件。

【讨论】:

【参考方案2】:

您现在可以创建一个.pubignore 文件来执行此操作。有关其工作原理的更多详细信息,请参阅this PR。

【讨论】:

【参考方案3】:

您可以在发布到pub.dev 时将它们添加到.gitignore,然后在推送到GitHub 之前从.gitignore 中删除。

引用自dart documentation。

发布了哪些文件? 包中的所有文件都包含在已发布的包中,但以下情况除外: 任何包目录。 你的包的锁文件。 如果您不使用 Git,则所有隐藏文件(即名称以 . 开头的文件)。 如果你使用 Git,任何被 .gitignore 文件忽略的文件。 请务必删除您不想包含的任何文件(或将它们添加到 .gitignore)。 pub publish 会在上传您的包之前列出它要发布的所有文件,因此请在完成上传之前仔细检查该列表。

【讨论】:

以上是关于如何从 Dart 包的 pub 发布中排除文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 TFVC 源代码管理中排除 Nuget 包的步骤是啥?

pub.dev 不接受颤动格式

如何使用我的 dart 包私有而不在 pub dart lang 上显示?

如何从源代码管理中排除 NuGet 内容

如何从 git 中排除打字稿编译的文件

Dart pub 全局运行无法解析脚本名称