esbuild-plugin-alias-path
Version:
ESBuild plugin for alias path.
42 lines • 3.01 kB
JSON
{
"name": "esbuild-plugin-alias-path",
"version": "2.0.2",
"description": "ESBuild plugin for alias path.",
"keywords": [
"ESBuild",
"plugin"
],
"homepage": "https://github.com/LinbuduLab/esbuild-plugins/tree/master/packages/esbuild-plugin-copy#readme",
"changelog": "https://github.com/LinbuduLab/esbuild-plugins/blob/main/packages/esbuild-plugin-copy/CHANGELOG.md",
"bugs": {
"url": "https://github.com/LinbuduLab/esbuild-plugins/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/LinbuduLab/esbuild-plugins.git"
},
"license": "MIT",
"author": "Linbudu <linbudu599@gmail.com> (https://github.com/linbudu599)",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
}
},
"dependencies": {
"find-up": "5.0.0",
"fs-extra": "^10.1.0",
"jsonfile": "^6.1.0"
},
"peerDependencies": {
"esbuild": ">= 0.14.0"
},
"scripts": {
"dev": "tsup src/index.ts --watch --dts --format esm",
"build": "rm -rf dist && tsup src/index.ts --config ../../tsup.config.ts"
},
"readme": "# esbuild-plugin-alias-path\n\nESBuild plugin for alias path replacement.\n\n- [Author](https://github.com/linbudu599)\n- [GitHub Repo](https://github.com/LinbuduLab/esbuild-plugins/tree/master/packages/esbuild-plugin-alias-path#readme)\n- [Changelog](https://github.com/LinbuduLab/esbuild-plugins/blob/main/packages/esbuild-plugin-alias-path/CHANGELOG.md)\n\n## Usage\n\n```bash\nnpm install esbuild-plugin-alias-path --save-dev\npnpm install esbuild-plugin-alias-path --save-dev\nyarn add esbuild-plugin-alias-path --save-dev\n```\n\n```typescript\nimport { build } from 'esbuild';\nimport { aliasPath } from 'esbuild-plugin-alias-path';\n\n(async () => {\n const res = await build({\n entryPoints: ['./src/main.ts'],\n bundle: true,\n outfile: './dist/main.js',\n plugins: [\n aliasPath({\n alias: { '@foo': './src/alias/foo.ts' },\n }),\n ],\n });\n})();\n\n// src/main.ts\nimport { FOO } from '@foo';\nconsole.log(FOO);\n\n// src/alias/foo.ts\nexport const FOO = 'foo';\n\n// Output dist/main.js\nimport { FOO } from './src/alias/foo.ts';\n```\n\n## Configurations\n\nYou can also use syntax `*` like `@alias/*`, this will explore all the files in the directory and replace the path.\n\n> Use `@alias/*` instead of `@alias/**/*`\n\n```typescript\naliasPath({\n alias: {\n '@alias/*': path.resolve(__dirname, './src/alias'),\n },\n});\n```\n\nFor example:\n\n```text\n|- alias\n|- |- foo.ts\n|-- nested\n|-- |- bar.ts\n```\n\nWill be replaced to:\n\n```text\n@alias/foo.ts -> ./src/alias/foo.ts\n@alias/nested/bar.ts -> ./src/alias/nested/bar.ts\n\n```\n\n**NOTE: In TypeScript project, `compilerOptions.paths` in `tsconfig.json` will be used by ESBuild automatically, so you will need this plugin only when you're going to replace the alias dynamically.**\n"
}