我的 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不明白“@”是什么,因此我收到“找不到模塊”錯誤。我怎么解決這個問題?
uj5u.com熱心網友回復:
請參閱 TypeScript 的 GitHub 專案上的此問題:發出的代碼中未決議模塊路徑映射 (#10866)
tl;博士
- TypeScript 不會重寫你的模塊路徑
paths旨在幫助 TypeScript 理解打包程式使用的路徑別名- 你要么需要:
- 使用打包器,比如webpack,并配置它自己的路徑映射
- 使用構建時工具(例如tspath)重寫路徑
- 使用module-alias 之類的東西修改運行時模塊決議器
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330842.html
上一篇:定義屬性的粗箭頭
