Skip to main content
Home
This package works with Deno
This package works with Deno
JSR Score
52%
Published
2 years ago (1.0.24)
Package root>README.md
# module-specifier-resolver This tool transforms `module specifier` of TypeScript source code when it contains. Because ECMAScript Modules(ESM) system doesn't allow to abbreviate file extension, so this tool aim to follows the system. ## use cases - You want to migrate your development enviroment like below. - From `Node.js` & `TypeScript 4.7 ~ 4.9` to `Node.js` & `TypeScript 5.0 ~` - From `Node.js` & `TypeScript` to `Deno` & `TypeScript` in the near future ## transform example ### a file tree as follows ```bash root ├── foo.ts ├── bar.ts └── cool ├── index.ts └── cool.ts ``` #### before - `foo.ts` ```ts // If your TypeScript "compilerOptions" has set "moduleResolution": "nodenext", it will be like below. // import { bar } from './bar.js' import { bar } from './bar' import { cool } from './cool' console.log(bar) console.log(cool) ``` - `bar.ts` ```ts export const bar = 42 ``` - `cool/index.ts` ```ts export { cool } from './cool' ``` - `cool/cool.ts` ```ts export const cool = 'this is cool' ``` #### after - `foo.ts` ```ts import { bar } from './bar.ts' import { cool } from './cool/index.ts' console.log(bar) console.log(cool) ``` - `cool/index.ts` ```ts export { cool } from './cool.ts' ``` ## limitation - Can't resolve `paths` mapping of TypeScript `compilerOptions`. - Please be careful if your code have the text `//_PRESERVE_NEWLINE_//` which will be replace newline, because of that keeps original newline before tsc compiler optimize it. - Can't keep `single quatation` , `duble quatation` , `semicolon` , `comma` and `indatation` of original source code. ## tools Please install [Deno](https://deno.land/manual@v1.30.3/getting_started/installation). ## command ### remote - dry run - `deno run --allow-env --allow-read --allow-write https://deno.land/x/module_specifier_resolver@v1.0.24/bin.ts -b=./src -c=./tsconfig.json -d` - transform - `deno run --allow-env --allow-read --allow-write https://deno.land/x/module_specifier_resolver@v1.0.24/bin.ts -b=./src -c=./tsconfig.json -r` ### local - `deno task run-dry` - `deno task run` ### arguments | key | description | type | default | |-----|-----|-----|-----| | -b | locale of base directory | `string` | `.` | | -c | locale of base `tsconfig.json` | `string` | `./tsconfig.json` | | -d | dry run | `boolean` | `false` | | -r | enable repl interface | `boolean` | `false` | ## tips After you ran `bin.ts`, you should run `npx tsc --noEmit` and your bundler's `build` command due to check correctness of transformation by this tool. - `tsconfig.json` example ```json { "compilerOptions": { "moduleResolution": "bundler", "allowImportingTsExtensions": true } } ``` ## License - MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)