trp

tsconfig-replace-paths

Replace absolute paths to relative paths for package compilation

Showing:

Popularity

Downloads/wk

949

GitHub Stars

15

Maintenance

Last Commit

1mo ago

Contributors

1

Package

Dependencies

2

Size (min+gzip)

40.2KB

License

MIT

Type Definitions

Built-In

Tree-Shakeable

Yes?

Categories

Readme

tsconfig-replace-paths

Replace absolute paths to relative paths for package compilation.

I'll add to this over time. Submit PR's if you like. Tag me on them.

Getting Started

First, install tsconfig-replace-paths as devDependency using yarn or npm.

yarn add -D tsconfig-replace-paths

or

npm install --save-dev tsconfig-replace-paths

Add it to your build scripts in package.json

"scripts": {
  "build": "tsc --project tsconfig.json && tsconfig-replace-paths --project tsconfig.json",
}

What if you want to build only the types?

You can also setup a seperate tsconfig file just for types if you are also compiling with Babel. Assuming you're compiling CommonJs, make a tsconfig.types.cjs.json. See examples of both CommonJs and ESM in the examples folder within repo.

{
  "extends": "./tsconfig",
  "compilerOptions": {
    "module": "commonjs",
    "rootDir": "./src",
    "outDir": "dist/commonjs",
    "declaration": true,
    "declarationMap": false,
    "isolatedModules": false,
    "noEmit": false,
    "allowJs": false,
    "emitDeclarationOnly": true
  },
  "exclude": ["**/*.test.ts"]
}

And then target that. Your final build script might look like this. You first compile to CommonJs using Babel, and then build the types using the Typescript Compiler, tsc, followed by fixing the paths them with tsconfig-replace-paths. If only tsc did this for you.

"config": {
  "dirBuild": "./dist",
  "dirSrc": "./src",
},
"scripts": {
  "build:commonjs": "yarn nuke:build && cross-env BABEL_ENV=commonjs babel $npm_package_config_dirSrc --out-dir $npm_package_config_dirBuild --extensions \".ts,.tsx,.js,.jsx\" --source-maps inline",
  "build:types:commonjs": "tsc --project tsconfig.types.cjs.json && tsconfig-replace-paths --project tsconfig.types.cjs.json",
  "build:types": "yarn build:types:commonjs",
  "build": "yarn build:commonjs && yarn build:types",
  "nuke:build": "rm -rf $npm_package_config_dirBuild",
}

Options

flagdescription
-p --projectproject configuration file (tsconfig.json)
-s --srcsource code root directory (overrides the tsconfig provided)
-o --outoutput directory of transpiled code (tsc --outDir) (overrides the tsconfig provided)
-v --verboseconsole.log all the events

Inspired by

tsconfig-paths and tscpaths

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100