gpt4 book ai didi

node.js - typescript 4.4.4 : tsconfig paths not resolving as expected

转载 作者:行者123 更新时间:2023-12-05 01:56:55 26 4
gpt4 key购买 nike

我的 tsconfig.json

{
"compilerOptions": {
"target": "ES2018",
"module": "CommonJS",
"lib": ["ESNext", "ESNext.AsyncIterable"],
"skipLibCheck": true,
"sourceMap": true,
"outDir": "./dist",
"moduleResolution": "node",
"removeComments": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule": true,
"baseUrl": "./",
"paths": {
"@/*": ["src/*"],
"@config": ["src/config"],
}
},
"exclude": ["node_modules"],
"include": ["./src/**/*.ts"]
}

我很确定 tsconfig 路径没有任何问题,因为我什至从我的 IDE 中获得了路径自动完成功能。然而,当我的代码被编译时(tsc --project tsconfig.json)

import { PRODUCTION } from '@config';

// or

import { PRODUCTION } from '@/config';

我开始关注 javascript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const _config_1 = require("@config");
console.log(_config_1.PRODUCTION);
//# sourceMappingURL=index.js.map

但 javascript 不理解“@”是什么,因此我收到“找不到模块”错误。我该如何解决这个问题?

最佳答案

在 TypeScript 的 GitHub 项目上查看此问题:Module path maps are not resolved in emitted code (#10866)

tl;dr

  • TypeScript 不会重写您的模块路径
  • paths 旨在帮助 TypeScript 理解打包器使用的路径别名
  • 您需要:
    • 使用 bundler ,例如 webpack , 并配置自己的路径映射
    • 使用构建时间工具,例如 tspath , 重写路径
    • 修改运行时模块解析器,类似于module-alias

关于node.js - typescript 4.4.4 : tsconfig paths not resolving as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69669729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com