发布包
任何定义了导出的 Deno 程序都可以作为包发布,供其他开发者导入。本页介绍发布位置以及发布方式。
选择注册表 Jump to heading
- JSR:推荐用于以 Deno 为优先的包的注册表。 它可直接接受 TypeScript(无需构建步骤),会根据你的 JSDoc 注释生成文档,并向 Deno、Node.js 及其他运行时提供包。
- npm:当你的使用者主要在 Node.js 上,或需要 npm 工具链时,请发布到这里。
使用
deno pack从 Deno 项目构建与 npm 兼容的 tarball,或者使用 dnt 以获得更 可配置的构建流程。 - deno.land/x:用于 HTTPS 导入的旧注册表。对于新包,建议优先使用 JSR。
发布到 JSR Jump to heading
在 deno.json 中为你的包指定名称、版本和入口点:
deno.json
{
"name": "@scope/my-package",
"version": "1.0.0",
"exports": "./mod.ts"
}
名称始终带有作用域(@scope/name)。首次发布时,请在
jsr.io 上创建该作用域。
检查将要发布的内容,然后执行发布:
>_
deno publish --dry-run # 验证文件列表和元数据
deno publish # 打开 jsr.io 进行身份验证,然后发布
deno publish 会在上传前对你的代码进行类型检查,并验证你的导出不依赖
于包外的任何内容。有关标志,请参阅
deno publish 参考,有关作用域、版本控制、来源信息以及从 CI
发布,请参阅 jsr.io 上的发布包。
要在各个版本之间更新版本字段,你可以使用
deno bump-version。
发布到 npm Jump to heading
deno pack(Deno 2.8+)会从 Deno 优先
项目构建与 npm 兼容的 tarball:它会转译 TypeScript、生成类型
声明,并生成 npm 期望的 package.json 元数据。
>_
deno pack # 创建 tarball
npm publish ./package.tgz
对于较旧的设置,或需要对输出进行细粒度控制的构建 (shims、多目标、构建期间运行测试),请使用 dnt,即 Deno 到 npm 的构建工具。
工作区 Jump to heading
在 workspace 中,deno publish 会按依赖顺序发布
每个具有名称和版本的工作区成员。详细信息请参阅
将工作区包发布到注册表
。
继续阅读 Jump to heading
- 依赖管理:本页所源自的日常工作流程
deno publish和deno pack参考- JSR 发布文档