原文地址:cloudsmith.com/blog/clouds…
原文作者:blog.cloudsmith.io/author/kyle…
发布时间:2020年2月3日
Cloudsmith的承诺很简单。我们确保开发团队能够在需要的时候访问他们需要的软件包。
我们通过一个私有的、基于云的存储库来实现这一目标,它可以帮助企业免受与使用第三方软件包有关的恶意软件、安全和许可问题的影响,同时让您完全控制对自己软件包的访问。
我们的方法的一个关键方面是通用性。我们理解个别开发人员和团队使用多种语言和多种软件包格式工作。我们允许他们继续这样做,但通过Cloudsmith以一致、可靠和高性能的方式处理软件包管理。
今天,作为这一承诺的一部分,我们推出了对私有Dart包库的支持。
Dart生态系统
Dart是由Google开发的一种开源、面向对象的通用编程语言。它是一种客户端优化的语言,用于在任何平台上构建快速的应用程序,专注于为新进入网络的开发人员提供一个高效的环境,特别是对结构化语言和工具感到舒适的开发人员。
自2013年以来,谷歌已经使用Dart实现了AdWords和Google Fiber等网站,2017年,我们看到了Flutter的发布;谷歌在iOS和Android中构建原生界面的UI框架,它是建立在Dart之上的。
Flutter的流行刺激了Dart在移动开发中的使用复兴,Dart 2.0的推出加速了这一进程,其特点是对客户端开发进行了改进,包括强输入和 "UI即代码"。Dart似乎也受到使用它的人的欢迎。2019年Stack Overflow开发者调查发现,在使用Dart的人中,有66.3%的人将在未来继续使用它--这让它稳居 "喜爱 "的行列。
Dart 捆绑了 Pub,Pub 是 Dart 编程语言的包管理器,包含 Flutter 和一般 Dart 程序的可重用库与包。
大多数读者都知道,包允许在Flutter/Dart应用中进行代码共享和重用。Pub负责下载和安装这些包,主要是从官方Dart包库pub.dev下载的。
但你不一定要使用pub.dev。如果需要的话,Pub提供了所有必要的工具和配置标志来指向另一个仓库。
而且有几个很好的理由让你希望这样做--在Cloudsmith上运行你自己的私有仓库。采取这种方式可以让开发团队
- 在内部开发Dart包,并将它们私下分享给其他团队。
- 在你的组织中通过管道分发和部署你自己的Dart包。
- 作为商业软件发布Dart软件包。
- 对公共Dart软件包进行修改,而不需要重新公开发布。
- 镜像公共的Dart软件包,并隔离不受控制的上游问题。
- 在特定的版本/版本发布时捕获你的依赖关系的确切状态。
- 控制(白名单/黑名单)你的组织允许的确切的Dart包。
- 跟踪你所拥有/使用的Dart包的确切版本/版本。
简而言之:提供Cloudsmith的所有好处,这些好处已经被全世界的开发团队所享受。
如果你想加入他们的行列,今天就注册,开始在世界上第一个托管的私人Dart包库服务中托管和分发你的Dart包。
另请参见:
Dart: www.dart.dev/ Pub: pub.dev
入门
开始使用Cloudsmith和Dart再简单不过了。
首先,你需要一个Cloudsmith账户和一个可以上传包的仓库。其次,你需要确保你运行的是至少2.0版本(或更高版本)的Dart。
你可以像这样检查你当前安装的Dart和Pub版本。
$ dart --version
Dart VM version: 2.7.0 (Fri Dec 6 16:26:51 2019 +0100) on "macos_x64"
$ pub --version
Pub 2.7.0
如果你看到像上面这样的东西,你就可以开始工作了
创建你的Dart包
在这个演示中,我们将创建一个dart文件,其中包含一个打印消息的函数,以及一个用于创建包的pubspec文件。
output.dart文件应该位于lib文件夹中,并包含以下内容。
void greet(){
print('Cloudsmith: Be Awesome. Automate Everything.');
}
pubspec.yaml文件的内容应该包含。
name: "my-package"
description: "Simple package wth a simple message"
version: "0.1.0"
homepage: "your_homepage"
documentation: "your_docs"
author: "You "
environment:
sdk: '>=2.0.0 <3.0.0'
如果你看一下你创建这些文件的新目录,你会看到以下内容。
├──lib
│ ├── output.dart
└── pubspec.yaml
目前,本地工具不支持生成包,但可以通过 pub 使用 lish 命令来验证 pubspec.yaml。
$ pub lish
为了创建包,我们将使用tar将所有文件复制到.tar.gz中。在这个例子中,唯一存在的文件是我们的pubspec和dart文件,但重要的是要排除任何不必要的文件。
$ tar --exclude='.dart_tool' -czf my-package-0.1.0.tar.gz ./*
构建完成后,你可以使用Cloudsmith CLI将软件包推送到Cloudsmith。目前我们还不支持用pub publish来推送软件包,但我们会在未来的版本中增加支持(如果你想要,请告诉我们)。现在,请使用 CLI。
将你的Dart包发布到Cloudsmith上
首先,确保你已经安装了Cloudsmith CLI并配置了认证。
$ pip install cloudsmith-cli
$ export CLOUDSMITH_API_KEY=xxxxx
然后,使用 CLI 来推送软件包,它的操作和 pub publish 一样,不过是针对 Cloudsmith 的。
$ cloudsmith push dart my-org/my-repo my-package-0.1.0.tar.gz
Checking dart package upload parameters ... OK
Checking my-package-0.1.0.tar.gz file upload parameters ... OK
Requesting file upload for my-package-0.1.0.tar.gz ... OK
Creating a new dart package ... OK
Created: my-org/my-repo/my-package-010targz (eeb4n20QxSYM)
Synchronising my-package-010targz: [####################################] 100% Sync Completed / Fully Synchronised
Package synchronised successfully!
您的版本库现在应该包含上传的软件包。其中一个例子是我们的官方Cloudsmith示例仓库(这是我们上传示例的地方),如下所示。
从Cloudsmith安装你的Dart包。
首先,我们需要告诉 Pub 如何访问版本库。为此,你需要在你的 pubspec.yaml 中添加以下条目(将 TOKEN 替换为权益令牌,这是一种我们支持的只读认证令牌)。
将此添加到你的包的pubspec.yaml文件中。
dependencies:
cloudsmith_dart_example:
hosted:
name: cloudsmith_dart_example
url: https://dl.cloudsmith.io/TOKEN/my-org/my-repo/dart/
version: ^1.0.0
你可以从命令行安装软件包。
用 pub:
$ pub get
用 flutter:
$ flutter pub get
现在在你的Dart代码中,你可以使用。
import 'package:my_package/output.dart';
就是这么简单,现在你已经从Cloudsmith上你自己的私人Dart仓库中获得了一个私人的Dart包。干得好
结束语
Cloudsmith在所有计划上都提供了功能齐全的Dart仓库,无论你是为公共或开源项目托管公共包,还是为公司内部需求托管私有包,都能灵活使用。我们非常自豪地能够支持Dart生态系统的公共和私人Dart包的第一次(非官方)实施。
你可以在每个Cloudsmith资源库中找到进一步的特定信息,包括详细的设置和集成说明。你可以在我们的公共示例仓库中看到这个文档的例子。
为什么要等待?现在就在Cloudsmith获得您的公共和私有Dart资源库托管。
通过www.DeepL.com/Translator (免费版)翻译