this is the json schema used for the "deno.json" configuration file.
it has been extended to require the name and version entries, as they are required by "package.json" when converting a deno project to a node project.
in addition, the non-standard repository and bugs optional entries have been added, since they're also useful when publishing your package on "npmjs.com".

the json schema was originally taken from deno's official config schema file, and then converted to typescript via an online converter.

interface DenoJson {
    name: string;
    version: string;
    exports: string | ExportsWithMain;
    repository?: {
        type: string;
        url: string;
    };
    bugs?: {
        url: string;
    };
    packageJson?: any;
    bench?: Bench;
    compilerOptions?: CompilerOptions;
    exclude?: string[];
    fmt?: Fmt;
    importMap?: string;
    imports?: {
        [alias: string]: string;
    };
    lint?: Lint;
    lock?: Lock;
    nodeModulesDir?: boolean;
    publish?: Publish;
    scopes?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    tasks?: Tasks;
    test?: Test;
    unstable?: string[];
    vendor?: boolean;
    workspace?: string[];
}

Hierarchy

  • DenoConfigurationFileSchema
    • DenoJson

Properties

name: string

The name of this JSR package. Must be scoped

version: string

The version of this JSR package.

exports: string | ExportsWithMain
repository?: {
    type: string;
    url: string;
}
bugs?: {
    url: string;
}
packageJson?: any
bench?: Bench

Configuration for deno bench

compilerOptions?: CompilerOptions

Instructs the TypeScript compiler how to compile .ts files.

exclude?: string[]

List of files, directories or globs that will be ignored by all other configurations. Requires Deno 1.34 or later.

fmt?: Fmt

Configuration for formatter

importMap?: string

The location of an import map to be used when resolving modules. If an import map is specified as an --importmap flag or using "imports" and "scopes" properties, they will override this value.

imports?: {
    [alias: string]: string;
}

A map of specifiers to their remapped specifiers.

Type declaration

  • [alias: string]: string

    The key is the specifier or partial specifier to match, with a value that represents the target specifier.

lint?: Lint

Configuration for linter

lock?: Lock

Whether to use a lock file or the path to use for the lock file. Can be overridden by CLI arguments.

nodeModulesDir?: boolean

Enables or disables the use of a local node_modules folder for npm packages. Alternatively, use the --node-modules-dir flag or override the config via --node-modules-dir=false. Requires Deno 1.34 or later.

publish?: Publish

Configuration for deno publish

scopes?: {
    [key: string]: {
        [key: string]: string;
    };
}

Define a scope which remaps a specifier in only a specified scope

Type declaration

  • [key: string]: {
        [key: string]: string;
    }

    A definition of a scoped remapping.

    • [key: string]: string

      The key is the specifier or partial specifier to match within the referring scope, with a value that represents the target specifier.

tasks?: Tasks

Configuration for deno task

test?: Test

Configuration for deno test

unstable?: string[]

List of unstable features to enable.

vendor?: boolean

UNSTABLE: Enables or disables the use of a local vendor folder as a local cache for remote modules and node_modules folder for npm packages. Alternatively, use the --vendor flag or override the config via --vendor=false. Requires Deno 1.36.1 or later.

workspace?: string[]

The members of this workspace.