Package Exports
- tsc-alias
- tsc-alias/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tsc-alias) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tsc-alias
Replace alias paths with relative paths after typescript compilation. You can add aliases that reference other projects outside your tsconfig.json project by providing a relative path to the baseUrl.
Comparison to tsconfig-paths
+ Compile time (no runtime dependencies)
Getting Started
First, install tsc-alias as devDependency using npm.
npm install -g tsc-aliasnpm install --save-dev tsc-aliasAdd it to your build scripts in package.json
"scripts": {
"build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
}
================ OR ===================
"scripts": {
"build": "tsc && tsc-alias",
"build:watch": "tsc && (concurrently \"tsc -w\" \"tsc-alias -w\")"
}Issues
If you have an issue, please create one. But, before:
- try to check the FAQ.
- try to check if there exits alike issues.
- try to run with
--debugand check if config is correctly loaded and all sourcefiles are found.
API
Installation
npm install tsc-aliasUsage
import { replaceTscAliasPaths } from 'tsc-alias';
replaceTscAliasPaths(options?);Here are all the available options:
| Option | Description | Default Value |
|---|---|---|
| configFile | path to tsconfig.json | 'tsconfig.json' |
| watch | Observe file changes | false |
| outDir | Run in a folder leaving the "outDir" of the tsconfig.json (relative path to tsconfig) | tsconfig.compilerOptions.outDir |
| declarationDir | Works the same as outDir but for declarationDir | tsconfig.compilerOptions.declarationDir |
| resolveFullPaths | Attempt to replace incomplete import paths (those not ending in .js) with fully resolved paths (for ECMAScript Modules compatibility) |
false |
| silent | Reduced terminal output. This is a deprecated option and no longer has any effect. | true |
| verbose | Additional information is output to the terminal | false |
| debug | Debug information is send to the terminal | false |
| replacers | Files to import as extra replacers More info | [] |
| output | The output object tsc-alias will send logs to. | new Output(options.verbose) |
Configuration via tsconfig.json Example
{
"compilerOptions": {
...
},
"tsc-alias": {
"verbose": false,
"resolveFullPaths": true,
"replacers": {
"exampleReplacer": {
"enabled": true,
"file": "./exampleReplacer.js"
},
"otherReplacer": {
"enabled": true,
"file": "./otherReplacer.js"
}
}
}
}Single file replacer
We can use tsc-alias in a single file, with a function that returns the modified contents.
We prepare the replacer with prepareSingleFileReplaceTscAliasPaths(), passing the same options that we would pass to replaceTscAliasPaths(). That will return a promise of a function that receives the file contents and path, and returns the transformed contents, synchronously.
import { prepareSingleFileReplaceTscAliasPaths } from 'tsc-alias';
const runFile: SingleFileReplacer = await prepareSingleFileReplaceTscAliasPaths(options?);
function treatFile(filePath: string) {
const fileContents = fs.readFileSync(filePath, 'utf8');
const newContents = runFile({fileContents, filePath});
// do stuff with newContents
}