网站搜索

在从 TypeScript 转换的 JavaScript 中文件路径无法解析


我正在使用 @ 符号在 TypeScript 中导入文件。tsconfig.json 文件代码:

{
    "compilerOptions": {
        "baseUrl": ".",
        "target": "ES6",
        "module": "CommonJS",
        "lib": ["ES2018"],
        "outDir": "dist/",
        "esModuleInterop": true,
        "strict": true,
        "sourceMap": false,
        "useUnknownInCatchVariables": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "moduleResolution": "node",
        "typeRoots": ["./node_modules/@types", "./typings"],
        "paths": {
            "@src/*": ["src/*"],
            "@api/*": ["src/api/*"],
            "@config/*": ["src/config/*"],
            "@database/*": ["src/database/*"],
            "@middlewares/*": ["src/middlewares/*"],
            "@utils/*": ["src/utils/*"],
            "@validators/*": ["src/validators/*"]
        }
    },
    "exclude": ["node_modules/**/*"]
}

当我将 TypeScript 编译为 JavaScript 时,它使用带有 @ 符号的路径,类似这样:const env_config_1=require("@config/env/env.config");,这不起作用,因为 JavaScript 不理解 @。

我尝试过不同的解决方案,比如使用名为 tsc-alias、tscpaths 的包以及重启 IDE 中的 TypeScript 服务器,但它仍然会在 JavaScript 中将路径转换为带有 @ 符号的形式。

使用 tsc-alias 包的构建命令:"build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json"