我有一个TypeScript项目,我试图把它转换成可执行的JavaScript,它使用路径别名。--这是我正在处理的NPM包所必需的.
例如,通过从我的lib目录导入一个方法,而不通过相对路径引用它:
import { hexify } from '@lib/utils/conversion';通常,我会使用tsconfig-paths注册路径别名,当我从入口点使用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。但是在这种情况下,,我想成功地将其转换到JavaScript,这样编译器就可以自动地将路径别名转换为正确的相对路径,因此不需要使用ts-node和tsconfig-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'发布于 2022-11-29 21:01:11
目前,无法将其作为tsc构建的一部分来完成。
有许多模块将为您完成任务,例如ts-alias。事实上,在npm上搜索“类型记录路径别名”提供了66个这样的模块:https://www.npmjs.com/search?q=typescript%20path%20alias
https://stackoverflow.com/questions/73164926
复制相似问题