JSR包发布终极教程从配置到部署的完整流程【免费下载链接】jsrThe open-source package registry for modern JavaScript and TypeScript项目地址: https://gitcode.com/gh_mirrors/js/jsrJSR是现代JavaScript和TypeScript的开源包注册表本文将为你提供从配置到部署的完整JSR包发布流程帮助你轻松发布自己的JavaScript/TypeScript包到JSR平台。JSR包发布前准备在开始发布JSR包之前需要确保你的代码符合JSR的基本要求。JSR包必须是ESM模块支持TypeScript源代码发布这有助于提供更好的自动生成文档和编辑器自动补全功能。JSR包基本规则ESM模块只能发布使用import和export关键字的ESM模块不支持CommonJS模块依赖支持可以依赖npm包使用npm:前缀和JSR包使用jsr:前缀Node.js内置模块支持使用node:scheme导入Node.js内置模块文件名规范文件名必须兼容Windows和Unix系统不能包含特殊字符避免慢类型为了加速类型检查和文档生成应避免使用某些TypeScript慢类型编写符合JSR标准的代码基础代码结构创建一个简单的TypeScript模块作为示例// greet.ts /** * Greet a person. * param name The name of the person to greet. */ export function greet(name: string) { console.log(Hello, ${name}!); }相对导入规范在包内部引用其他模块时应使用正确的扩展名// mod.ts export * from ./greet.ts;依赖管理可以通过package.json或导入映射文件管理依赖// package.json { dependencies: { chalk: 5 } }也可以在代码中直接使用带前缀的导入import * as express from npm:express4; import { encodeBase64 } from jsr:std/encoding1/base64;配置JSR包元数据创建配置文件需要创建jsr.json文件或在deno.json(c)中添加JSR属性来定义包元数据// jsr.json { name: your-scope/your-package, version: 1.0.0, exports: ./mod.ts }多入口点配置如果你的包有多个入口点可以使用对象语法// jsr.json { name: your-scope/your-package, version: 1.0.0, exports: { .: ./mod.ts, ./greet: ./greet.ts, ./farewell: ./farewell.ts } }这样用户可以通过不同路径导入不同功能import { greet } from your-scope/your-package; import { farewell } from your-scope/your-package/farewell;创建作用域和包JSR使用作用域类似npm组织来组织包。你需要先创建一个作用域然后在该作用域下创建包。在JSR网站创建作用域名称需2-32个字符只能包含小写字母、数字和连字符在创建的作用域下创建包名称需2-20个字符同样只能包含小写字母、数字和连字符验证包在正式发布前建议进行验证。可以使用--dry-run标志执行所有发布验证但不实际发布# 使用Deno deno publish --dry-run # 使用npm npx jsr publish --dry-run # 使用yarn yarn dlx jsr publish --dry-run # 使用pnpm pnpm dlx jsr publish --dry-run发布包的多种方式从本地机器发布进入包含jsr.json或deno.json文件的包根目录运行发布命令# 使用Deno deno publish # 使用npm npx jsr publish # 使用yarn yarn dlx jsr publish # 使用pnpm pnpm dlx jsr publish命令执行后会打开浏览器进行身份验证登录JSR账户并授权CLI访问权限之后CLI会将包上传到JSR注册表。从GitHub Actions自动发布JSR原生支持从GitHub Actions发布无需配置密钥或认证信息在JSR包设置中链接GitHub仓库创建工作流文件.github/workflows/publish.ymlname: Publish on: push: branches: - main jobs: publish: runs-on: ubuntu-latest permissions: contents: read id-token: write # 使用OIDC ID token进行认证 steps: - uses: actions/checkoutv6 - run: npx jsr publish从其他CI提供商发布对于其他CI环境如GitLab CI、CircleCI等需要使用个人访问令牌进行认证在JSR账户设置中创建具有Publish权限的访问令牌将令牌存储为CI环境变量如JSR_TOKEN在CI脚本中使用令牌发布# 使用Deno deno publish --token $JSR_TOKEN # 使用npx npx jsr publish --token $JSR_TOKEN文件过滤配置JSR会忽略.gitignore中列出的文件还可以在配置文件中使用include和exclude字段来精确控制要发布的文件// jsr.json { name: your-scope/your-package, version: 1.0.0, exports: ./src/mod.ts, publish: { include: [ LICENSE, README.md, src/**/*.ts ], exclude: [ src/tests ] } }如果需要发布.gitignore中忽略的文件可以使用否定模式// jsr.json { name: your-scope/your-package, version: 1.0.0, exports: ./dist/mod.ts, publish: { exclude: [!dist] } }总结通过本教程你已经了解了从代码准备、配置文件创建、包验证到各种发布方式的完整JSR包发布流程。现在你可以开始发布自己的JavaScript/TypeScript包到JSR与全球开发者共享你的成果要开始使用JSR首先克隆仓库git clone https://gitcode.com/gh_mirrors/js/jsr然后按照本文步骤创建和发布你的第一个JSR包。【免费下载链接】jsrThe open-source package registry for modern JavaScript and TypeScript项目地址: https://gitcode.com/gh_mirrors/js/jsr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考