or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-tsconfig--node12

A base TSConfig for working with Node 12.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@tsconfig/node12@12.1.x

To install, run

npx @tessl/cli install tessl/npm-tsconfig--node12@12.1.0

index.mddocs/

@tsconfig/node12

@tsconfig/node12 provides a base TypeScript configuration optimized for Node.js 12 runtime environments. It defines compiler options that align with Node 12's JavaScript capabilities, ensuring strict type checking while maintaining compatibility with Node 12's module system and available ECMAScript features.

Package Information

  • Package Name: @tsconfig/node12
  • Package Type: npm
  • Language: TypeScript (Configuration)
  • Installation: npm install --save-dev @tsconfig/node12

Core Imports

This package is consumed through TypeScript configuration extension rather than code imports:

{
  "extends": "@tsconfig/node12/tsconfig.json"
}

Basic Usage

# Install the package
npm install --save-dev @tsconfig/node12
// tsconfig.json
{
  "extends": "@tsconfig/node12/tsconfig.json",
  "compilerOptions": {
    // Your additional or overridden options
    "outDir": "./dist",
    "baseUrl": "./src"
  }
}

Architecture

@tsconfig/node12 follows the TSConfig base pattern where:

  • Base Configuration: Provides sensible defaults for Node.js 12 environments
  • Extension Pattern: Consumed via extends property in user tsconfig.json files
  • Override Support: All settings can be overridden or supplemented by consuming projects
  • Version Alignment: Configuration options aligned with Node.js 12 capabilities and JavaScript feature support

Capabilities

TypeScript Configuration Base

The main configuration object that provides Node.js 12-optimized TypeScript compiler settings.

{
  "$schema": "https://json.schemastore.org/tsconfig",
  "display": "Node 12",
  "_version": "12.1.0",
  "compilerOptions": {
    "lib": ["es2019", "es2020.promise", "es2020.bigint", "es2020.string"],
    "module": "node16",
    "target": "es2019",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "moduleResolution": "node16"
  }
}

Configuration Properties

Schema Reference

JSON schema reference for TypeScript configuration validation.

{
  "$schema": "https://json.schemastore.org/tsconfig"
}

Display Name

Human-readable display name for this configuration.

{
  "display": "Node 12"
}

Version Identifier

Internal version identifier for this configuration base.

{
  "_version": "12.1.0"
}

Compiler Options

Core TypeScript compiler configuration optimized for Node.js 12.

{
  "compilerOptions": {
    "lib": string[],
    "module": string,
    "target": string,
    "strict": boolean,
    "esModuleInterop": boolean,
    "skipLibCheck": boolean,
    "moduleResolution": string
  }
}

Library Definitions

JavaScript language features available in Node.js 12 environment.

{
  "lib": ["es2019", "es2020.promise", "es2020.bigint", "es2020.string"]
}

Features included:

  • es2019: Core ES2019 features (Array.flat, Object.fromEntries, etc.)
  • es2020.promise: Promise.allSettled and related Promise features
  • es2020.bigint: BigInt support for large integer operations
  • es2020.string: String.matchAll and related string methods

Module Configuration

Module system and resolution settings for Node.js compatibility.

{
  "module": "node16",
  "moduleResolution": "node16"
}

Compilation Target

ECMAScript target version matching Node.js 12 capabilities.

{
  "target": "es2019"
}

Type Checking Options

Strict type checking and interoperability settings.

{
  "strict": true,
  "esModuleInterop": true,
  "skipLibCheck": true
}

Settings explained:

  • strict: Enables all strict type checking options for maximum type safety
  • esModuleInterop: Enables interoperability between CommonJS and ES modules
  • skipLibCheck: Skips type checking of declaration files for faster compilation

Types

TSConfig Schema

The complete TypeScript configuration structure that can be extended.

interface TSConfig {
  $schema?: string;
  display?: string;
  _version?: string;
  compilerOptions: CompilerOptions;
  extends?: string | string[];
  // Additional tsconfig properties can be added by extending projects
}

interface CompilerOptions {
  lib?: string[];
  module?: string;
  target?: string;
  strict?: boolean;
  esModuleInterop?: boolean;
  skipLibCheck?: boolean;
  moduleResolution?: string;
  // Additional compiler options can be added by extending projects
}

Usage Examples

Basic Extension

{
  "extends": "@tsconfig/node12/tsconfig.json"
}

Extension with Overrides

{
  "extends": "@tsconfig/node12/tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist",
    "baseUrl": "./src",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

Multiple Configuration Extension

Since TypeScript 5.0+, you can extend from multiple configurations:

{
  "extends": [
    "@tsconfig/node12/tsconfig.json",
    "@tsconfig/strictest/tsconfig.json"
  ]
}

Project-Specific Customization

{
  "extends": "@tsconfig/node12/tsconfig.json",
  "compilerOptions": {
    "outDir": "./build",
    "baseUrl": ".",
    "paths": {
      "~/*": ["./src/*"]
    },
    "declaration": true,
    "declarationMap": true
  },
  "include": [
    "src/**/*.ts",
    "types/**/*.ts"
  ],
  "exclude": [
    "node_modules",
    "build",
    "**/*.test.ts"
  ]
}