On this page

deno publish

This applies to deno v1.42.0. and above.

Publish a package or workspace to JSR.

Command Jump to heading

deno publish [OPTIONS] - Publish the current working directory's package or workspace.

Synopsis Jump to heading

deno publish [--token <token>] [-c|--config <FILE>] [-q|--quiet]
[--no-config] [--dry-run] [--allow-slow-types] [--allow-dirty]
[--no-provenance] [--check[=<CHECK_TYPE>]] [--no-check[=<NO_CHECK_TYPE>]]

deno publish -h|--help

Description Jump to heading

The deno publish command is used to publish a package or workspace to JSR.

The command will upload the package to the registry and make it available for others to use.

Package Requirements Jump to heading

Your package must have a name and version and an exports field in its deno.json or jsr.json file.

  • The name field must be unique and follow the @<scope_name>/<package_name> convention.
  • The version field must be a valid semver version.
  • The exports field must point to the main entry point of the package.


  "name": "@scope_name/package_name",
  "version": "1.0.0",
  "exports": "./main.ts"

Before you publish your package, you must create it in the registry by visiting JSR - Publish a package.

Arguments Jump to heading

There are no required arguments for this command - it should be run from within your package or workspace directory.

Options Jump to heading

  • --token <token>

    The API token to use when publishing. If unset, interactive authentication will be used

  • -c, --config <FILE>

    The configuration file can be used to configure different aspects of deno including TypeScript, linting, and code formatting. Typically the configuration file will be called deno.json or deno.jsonc and automatically detected; in that case this flag is not necessary. See https://deno.land/manual@v1.41.3/getting_started/configuration_file

  • -q, --quiet

    Suppress diagnostic output

  • --no-config

    Disable automatic loading of the configuration file.

  • --dry-run

    Prepare the package for publishing performing all checks and validations without uploading

  • --allow-slow-types

    Allow publishing with slow types

  • --allow-dirty

    Allow publishing if the repository has uncommitted changed

  • --no-provenance

    Disable provenance attestation. Enabled by default on Github actions, publicly links the package to where it was built and published from.

  • --check[=<CHECK_TYPE>]

    Set type-checking behavior. This subcommand type-checks local modules by default, so adding --check is redundant. If the value of '--check=all' is supplied, diagnostic errors from remote modules will be included.

    Alternatively, the 'deno check' subcommand can be used.

  • --no-check[=<NO_CHECK_TYPE>]

    Skip type-checking. If the value of '--no-check=remote' is supplied, diagnostic errors from remote modules will be ignored

  • -h, --help

    Print help (see a summary with '-h')

Examples Jump to heading

  • Publish your current workspace
deno publish
  • Publish your current workspace with a specific token, bypassing interactive authentication
deno publish --token c00921b1-0d4f-4d18-b8c8-ac98227f9275
  • Publish and check for errors in remote modules
deno publish --check=all
  • Perform a dry run to simulate publishing.
deno publish --dry-run
  • Publish using settings from a specific configuration file
deno publish --config custom-config.json