常见问题解答
什么是 JSR?
JSR 是一个用于 JavaScript 的新型包注册表。它是一个免费的 npm 替代方案,旨在与所有 JavaScript 工具和运行时(如 Node.js、Deno、Bun、Vite 等)良好协作。
如何使用 JSR?
如果您想使用包,请阅读 使用包 指南。
如果您想发布包,请阅读 发布包 指南。
npm
、yarn
或 pnpm
这样的包管理器吗?
JSR 是像 不是。JSR 是一个包注册表(存储包的服务器),而不是一个包管理器(安装包的工具)。您可以将 JSR 与现有的包管理器(如 npm
、yarn
或 pnpm
)一起使用。
您可以在这里找到对此的更深入讨论:这里。
JSR 是开源的吗?
是的。JSR 是开源的,并根据 MIT 许可证授权。您可以在 GitHub 上找到源代码。
JSR 与 npm 有什么不同?
JSR 被设计为 npm 的超集,允许使用 npm 的现有工具与 JSR 无缝衔接。JSR 被设计为比 npm 更好。
- 自动生成文档
- 包评分
- 原生 TypeScript 支持
- 无需构建步骤,这为包发布者带来了更好的用户体验
- 安全、无令牌发布,抵御供应链攻击
- 等等… 了解更多关于我们为什么要构建 JSR 的信息。
JSR 如何资助?/ 我需要为 JSR 付费吗?
JSR 被设计为 JavaScript 社区的公共产品,因此将始终免费使用。
目前,JSR 的托管费用由 Deno 公司 支付。将来,JSR 可能通过其他方式获得资金,例如赞助、捐赠或基金会。我们预计 Deno 公司将在可预见的未来能够继续支付 JSR 的托管费用 - JSR 被设计为运行成本非常低。
我可以从 JSR 中删除包吗?
发布到 JSR 的源代码无法删除。 了解更多关于不可变性的信息。
您可以“撤回”包的某个版本,这将从默认视图中隐藏该版本,但它仍然可供依赖它的用户使用。 了解更多关于撤回的信息。
如果一个包没有发布版本,你可以删除它。 了解更多关于删除空包的信息。
为什么 JSR 对作用域和包版本有配额限制?
为了防止滥用,JSR 对作用域和包版本设置了配额限制。这些配额限制旨在宽松,不应影响您的正常使用。如果您需要增加配额,请通过 [email protected] 联系我们 - 如果您遇到配额限制,我们将很乐意为您增加配额。
JSR 的域名抢注政策是什么?
我们不允许在 JSR 上进行域名抢注。我们将域名抢注定义为注册作用域/包名称,但没有使用它的意图,或者是为了阻止其他人合法使用它(例如,为了将它卖给他们)。
如何报告 JSR 中的安全漏洞?
请遵循 Deno 公司的 安全政策 来报告 JSR 基础设施中的安全漏洞。
您也可以向单个包的范围所有者报告安全漏洞。如果范围所有者没有响应,请通过 [email protected] 联系我们。
如何报告 JSR 中的错误?
在公开测试期间,请通过 [email protected] 联系我们,或在 Deno Discord 的
#jsr
频道中聊天 (https://discord.gg/deno)。
请在 JSR GitHub 仓库中打开一个问题:jsr-io/jsr。
为什么 JSR 在我使用 GitHub 登录时要求“代表您操作”?
使用 GitHub 登录时,GitHub 会向您显示一个屏幕,要求您授权 JSR。此屏幕包含 JSR 可以访问的资源列表(仅您的电子邮件地址和公开个人资料信息)。
此屏幕还包含“代表您操作”的文字,这表明 JSR 可以代表您执行任意操作。这是误导性的,并非事实。 JSR 只能代表您读取您已授予其访问权限的任何资源(您的电子邮件地址和公开个人资料信息)。它不能代表您执行任意操作。
JSR 无法修改您的 GitHub 帐户、创建仓库、创建评论或执行任何其他被视为“代表您操作”的操作。GitHub 向所有 GitHub 应用显示此“代表您操作”屏幕,无论它们实际请求哪些权限。
您可以在 GitHub 文档 和 官方 GitHub Discussions 反馈论坛上的此讨论主题 中了解更多信息。
我在搜索中可以根据兼容的运行时过滤包吗?
可以!您可以使用搜索查询中的 runtime
过滤器,将包搜索过滤为仅返回与一个或多个运行时兼容的包。
要过滤与 Deno 兼容的包,您可以使用查询 runtime:deno
。要过滤与 Node.js 兼容的包,您可以使用查询 runtime:node
。您还可以组合这些过滤器,例如 runtime:deno runtime:browsers
将返回与 Deno 和 Web 浏览器都兼容的包。runtime
过滤器的可能值是 deno
、node
、browsers
、workerd
(Cloudflare Workers)和 bun
。
我在搜索中可以根据范围过滤包吗?
可以!您可以在搜索查询中指定 scope:
来根据范围过滤包。要仅返回 std
范围内的包,您可以使用查询 scope:std
。
“JSR” 是“JavaScript Registry”的首字母缩写吗?
是的。