如何将TypeScript中的别名路径转换为JavaScript



我有一个TypeScript项目,我正试图将其转换为使用路径别名的可执行JavaScript这是我正在处理的NPM包所必需的。

例如,从我的lib目录导入一个方法,而不通过相对路径引用它:

import { hexify } from '@lib/utils/conversion';

通常,当使用ts-node-dev --files -r tsconfig-paths/register ./src/index.ts之类的命令从入口点运行应用程序时,或者在生产模式下使用node -r ts-node/register/transpile-only -r tsconfig-paths/register ./dist/index.js时,我会使用tsconfig-paths来注册路径别名。但在这种情况下,我希望成功地将其转换为JavaScript,以便编译器自动将路径别名转换为正确的相对路径,因此不需要使用ts-nodetsconfig-paths来成功运行JavaScript代码。

对于一些附加上下文,我的tsconfig.json文件如下所示:

{
"ts-node": {
"files": true
},
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"rootDir": "src",
"outDir": "dist",
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"strictFunctionTypes": true,
"strictPropertyInitialization": false,
"resolveJsonModule": true,
"baseUrl": "./",
"paths": {
"@src/*": ["src/*"],
"@middleware/*": ["src/middleware/*"],
"@services/*": ["src/services/*"],
"@routes/*": ["src/routes/*"],
"@controllers/*": ["src/controllers/*"],
"@exchanges/*": ["src/api/exchanges/*"],
"@utils/*": ["src/utils/*"],
"@api/*": ["src/api/*"],
"@lib/*": ["src/lib/*"],
"@app": ["src/app/index.ts"],
"@singleton/*": ["src/singleton/*"],
"@constants/*": ["src/constants/*"]
}
},
"exclude": ["junk"]
}

然而,在构建这个项目时,我的NPM包无法理解我的路径别名,我可以为此做些什么来使我的NPM包工作吗?或者我应该使用别名更改所有TypeScript导入,改为使用相对路径,如下面的示例:

import { hexify } from '../lib/utils/conversion.ts'

目前,没有办法将此作为tsc构建的一部分。

有许多模块将为您完成任务,例如ts-alias。事实上,在npm上搜索";typescript路径别名";给出了66个这样的模块:https://www.npmjs.com/search?q=typescript%20path%20alias

最新更新