نمیتوان ماژول را پیدا کرد - خطای مسیر مستعار تایپاسکریپت
هنگام کامپایل خطایی دریافت میکنم که نمیتوانم آن را برطرف کنم :/
index.ts:2:19 - error TS2307: Cannot find module '@shared'
دلیلش را میدانی چرا اینطور است؟
ساختار پروژه:
tsconfig.json:
{
"compilerOptions": {
"outDir": "../../build/backend",
},
"extends": "../../configs/tsconfig.base.json",
"references": [
{
"path": "../shared"
}
],
"paths": {
"@shared": [
"../shared/index"
]
}
}
backend/index.ts:
import 'module-alias/register'
import { x } from '@shared'
console.log(x)
shared/index.ts:
export const x = 'this is shared index'
پاسخ شماره ۱
شما میتوانید از این دستور برای ردیابی مشکلات استفاده کنید:
tsc --traceResolution
همانطور که فهمیدم '@shared' به عنوان نام پوشه استفاده میشود، بنابراین به این شکل به نظر میرسد:
Resolving module name '@shared' relative to base url 'D:/apps/my-app/src' - 'D:/apps/my-app/src/@shared'.
بعد از اینکه نام مستعار را به 'shared' تغییر دادم و baseUrl را تنظیم کردم، همه چیز شروع به کار کرد:
{
"compilerOptions": {
"moduleResolution": "node",
"baseUrl": "../",
"outDir": "../../build/backend"
},
"extends": "../../configs/tsconfig.base.json",
"references": [
{
"path": "../shared"
}
],
"paths": { "shared": ["shared/index"] }
}
پاسخ شماره ۲
وای خدای من، بالاخره فهمیدم. baseUrl و paths باید داخل compilerOptions باشند و نه خارج از آن!
