使用 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
- 将
YOUR_TOKEN_HERE
替换为您的 Cloudsmith API 密钥或授权令牌 - 将
YOUR_ORG
替换为您的 Cloudsmith 组织 - 将
YOUR_REPO
替换为您的 Cloudsmith 仓库
接下来,配置您的 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 之间重大更改的详细信息,请参阅我们的迁移指南。