Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/justkey007/tsc-alias
Replace alias paths with relative paths after typescript compilation
https://github.com/justkey007/tsc-alias
absolute-path alias compilation paths relative-path tsc typescript
Last synced: 3 days ago
JSON representation
Replace alias paths with relative paths after typescript compilation
- Host: GitHub
- URL: https://github.com/justkey007/tsc-alias
- Owner: justkey007
- License: mit
- Created: 2019-05-06T06:33:14.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-16T17:38:22.000Z (5 months ago)
- Last Synced: 2024-12-14T14:40:23.151Z (8 days ago)
- Topics: absolute-path, alias, compilation, paths, relative-path, tsc, typescript
- Language: TypeScript
- Homepage:
- Size: 487 KB
- Stars: 923
- Watchers: 5
- Forks: 63
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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.
[![npm version](https://badge.fury.io/js/tsc-alias.svg)](https://badge.fury.io/js/tsc-alias)
[![License](https://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate/?hosted_button_id=FPRE4VERGHZ3E)## Comparison to [tsconfig-paths](https://github.com/dividab/tsconfig-paths)
\+ Compile time (no runtime dependencies)
## Getting Started
First, install tsc-alias as devDependency using npm.
```sh
npm install -g tsc-alias
``````
npm install --save-dev tsc-alias
```## Add it to your build scripts in package.json
```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.](https://github.com/justkey007/tsc-alias/discussions/110)
- try to check if there exits alike issues.
- try to run with `--debug` and check if config is correctly loaded and all sourcefiles are found.## API
### Installation
```sh
npm install tsc-alias
```### Usage
```typescript
import { replaceTscAliasPaths } from 'tsc-alias';replaceTscAliasPaths(options?);
```Here are all the available options:
Option
Description
Default Value
project, p
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
resolveFullExtension
Allows you to specify the extension of incomplete import paths, works withresolveFullPaths
'.js' | '.mjs' | '.cjs'
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)
fileExtensions
Overwrite file extensions tsc-alias will use to scan and resolve files.
undefined
### Configuration via `tsconfig.json` Example
```json
{
"compilerOptions": {
...
},
"tsc-alias": {
"verbose": false,
"resolveFullPaths": true,
"replacers": {
"exampleReplacer": {
"enabled": true,
"file": "./exampleReplacer.js"
},
"otherReplacer": {
"enabled": true,
"file": "./otherReplacer.js"
}
},
"fileExtensions": {
"inputGlob": "{js,jsx,mjs}",
"outputCheck": ["js", "json", "jsx", "mjs"]
}
}
}
```### 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.
```typescript
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
}
```