Parse aliases from tsconfig.json (or other tsconfig files)
for bundler configurations.
This package is designed to work with bundlers like Rolldown.
It is exactly a tool for parsing aliases in Record<string, string> format
from a tsconfig.json file or parsed object,
you can use it in any bundler that support configuration format like this.
You may configure tsconfig.json like this:
And then you can use it in your bundler like this:
// Rolldown for example.
import { builtinModules } from "node:module"
import { defineConfig } from "rolldown"
import { dts } from "rolldown-plugin-dts"
import tsconfigAliases from "tsconfig-aliases"
export default defineConfig({
// Configure like this and it will detect tsconfig.json in cwd by default.
resolve: { alias: tsconfigAliases() },
// Other options for example.
plugins: [dts({ sourcemap: true })],
external: [/^node:/g, ...builtinModules],
input: "xxx.ts",
output: { dir: "xxx", format: "esm", minify: true, sourcemap: true },
})You can also specify a custom path to tsconfig.json like this:
// Rolldown for example.
import { builtinModules } from "node:module"
import { defineConfig } from "rolldown"
import { dts } from "rolldown-plugin-dts"
import tsconfigAliases from "tsconfig-aliases"
export default defineConfig({
// Specify custom tsconfig.json path.
resolve: { alias: tsconfigAliases("./tsconfig.build.json") },
// Other options for example.
plugins: [dts({ sourcemap: true })],
external: [/^node:/g, ...builtinModules],
input: "xxx.ts",
output: { dir: "xxx", format: "esm", minify: true, sourcemap: true },
})// Rolldown for example.
import { readFileSync } from "node:fs"
import { builtinModules } from "node:module"
import { defineConfig } from "rolldown"
import { dts } from "rolldown-plugin-dts"
import tsconfigAliases from "tsconfig-aliases"
const tsconfig = readFileSync("./tsconfig.xxx.json", "utf-8")
export default defineConfig({
// Specify custom tsconfig.json object.
resolve: { alias: tsconfigAliases(tsconfig) },
// Other options for example.
plugins: [dts({ sourcemap: true })],
external: [/^node:/g, ...builtinModules],
input: "xxx.ts",
output: { dir: "xxx", format: "esm", minify: true, sourcemap: true },
})When using commonjs mode, you need to use default
to access the default exported function like this:
const tsconfigAliases = require("tsconfig-aliases").defaultor:
const { default: tsconfigAliases } = require("tsconfig-aliases")This package is released under the Apache 2.0 License.
{ // Definitely, this package supports parse from json with comments. "compilerOptions": { // ... (other compiler options) "baseUrl": ".", "paths": { "@/*": ["./src/*"], }, }, "include": [ // ... (custom include paths) ], }