跳到主要内容
Deno 2.4 发布,带来 deno bundle、字节/文本导入、稳定版 OTel 等更多功能
了解更多

使用 Cloudsmith 和 Deno 搭建安全高效的私有 npm 注册表

在 Deno 1.44 中,我们推出了私有 npm 注册表支持,以便开发团队能够轻松共享内部模块。管理 npm 注册表——无论是私有的还是公共的——都面临着安全漏洞、缺乏包使用情况的可视性以及可用性等挑战。

正因如此,我们很高兴宣布支持将 npm 注册表与Cloudsmith配合使用,Cloudsmith 是一个安全、云原生的制品管理平台。Cloudsmith 为所有格式提供安全、受控和高效的包管理,包括内部私有模块和公共 npm 包。

为何选择 Cloudsmith?

Cloudsmith 提供了一个强大的解决方案,用于管理 npm 包,无论是私有包还是来自公共注册表的包。以下是考虑使用 Cloudsmith 的几个原因:

  • 增强安全性:Cloudsmith 不仅允许授权用户访问您的 npm 包,还会验证并扫描您项目中每个 npm 包是否存在安全和合规性威胁。
  • 可视性:Cloudsmith 为您项目中使用的所有包提供了完全的透明度,让您可以跟踪、审计和管理所有依赖项。
  • 效率:Cloudsmith 的缓存功能可加速构建,并确保您的项目不依赖于公共注册表的可用性。

Cloudsmith 让您能够轻松安全地管理您的软件供应链,从而实现更快的开发周期、更可靠的部署以及更高的安心度。

使用 Cloudsmith 管理私有模块

以下是如何使用 Cloudsmith 管理私有模块的方法。

1. 设置您的 Cloudsmith 仓库

首先,在 Cloudsmith 中创建一个私有仓库来存储您的 npm 模块。

2. 创建并发布您的 npm 模块

创建您的 npm 模块并将其发布到您的 Cloudsmith 仓库。例如,如果您有一个名为 my-fave-npm-package 的模块,您可以使用 npm 发布它

npm publish --registry https://npm.cloudsmith.io/ciara-demo/npm-repo

3. 配置 Deno 使用您的私有 npm 注册表

创建 .npmrc 文件以指向您的 Cloudsmith 仓库并配置必要的身份验证

@cloudsmith:registry=https://npm.cloudsmith.io/YOUR_ORG/YOUR_REPO
///npm.cloudsmith.io/YOUR_ORG/YOUR_REPO/:_authoToken=YOUR_TOKEN_HERE

接下来,配置您的 deno.json 文件以导入您的私有模块

{
  "imports": {
    "@cloudsmith/my-fave-npm-package": "npm:my-fave-npm-package@1.0.0"
  }
}

4. 在 Deno 中使用您的私有模块

在您的 main.ts 文件中,您可以导入并使用该私有模块

import helloWorld from "@cloudsmith/my-fave-npm-package";
console.log(helloWorld());

5. 运行您的 Deno 项目

您可以运行您的项目

deno run --allow-net main.ts

大功告成 — 您的项目现在正在从 Cloudsmith 拉取私有模块!

下一步

还有许多其他方式可以将 Cloudsmith 与 Deno 结合使用。一个更高级的用例是使用 Cloudsmith 的上游代理将公共 npm 模块拉取到您的安全 Cloudsmith 仓库中,这使得 Cloudsmith 能够在一个地方扫描、审查和缓存您的依赖项。

🚨️ Deno 2 即将到来 🚨️

您今天就可以通过使用 deno upgrade rc 命令或设置 DENO_FUTURE=1 环境变量来安装 Deno 2 发布候选版。

有关 1.x 和 2 之间重大更改的详细信息,请参阅我们的迁移指南