@gulp-plugin/alias
![GitHub Package Registry version](https://img.shields.io/github/release/gulp-plugin/alias.svg?label=gpr&logo=github)
![dependencies Status](https://david-dm.org/gulp-plugin/alias/status.svg)
Resolve TypeScript import aliases and paths defined in tsconfig
.
Install
npm install --save-dev @gulp-plugin/alias
Information
Features
- Supports all import types:
import
, require
, await import()
- Supports wild card aliases
Motivation
There have been previous attempts at releasing Gulp plugins that accomplish something similar, but all have become unmaintained.
For legacy’s sake, here is a list of previous packages/scripts that have been considered:
gulp-ts-paths
path-alias-resolver
Note: Imports within multiline comments may also be replaced.
Usage
const typescript = require('gulp-typescript');
const sourcemaps = require('gulp-sourcemaps');
const alias = require('@gulp-plugin/alias');
const { config } = typescript.createProject('tsconfig.json');
function build() {
const compiled = src('./src/**/*.ts')
.pipe(alias(config))
.pipe(sourcemaps.init())
.pipe(project());
return compiled.js
.pipe(sourcemaps.write({ sourceRoot: file => path.relative(path.join(file.cwd, file.path), file.base) }))
.pipe(dest('build/'))
}
Example
The following configuration is common in tsconfig
configuration files
{
"rootDir": "./src",
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
In practice, these path aliases are often used in this fashion
Input:
import express from 'express';
import A from './file';
import B from '@/components';
Output:
import express from 'express';
import A from './file';
import B from '../../components';