typescript - نمیتواند ماژول 'ts-transformer-keys' را پیدا کند. آیا منظور شما این بود که گزینه 'moduleResolution' را روی 'node' تنظیم کنید، یا به گزینه 'paths' نام مستعار اضافه کنید؟


من میخواهم از ts-transformer-keys در پروژه تایپاسکریپتم "typescript": "^4.5.5" استفاده کنم. بنابراین این وابستگی را به package.json تایپاسکریپت اضافه کردم:

"ts-transformer-keys": "^0.4.3",

و این را به tsconfig.json به این صورت اضافه کرد:

"plugins": [
      { "transform": "ts-transformer-keys/transformer" }
] 

اما وقتی ts-transformer-keys را در پروژهی فعلی وارد میکنم:

import { keys } from 'ts-transformer-keys';

خطا نشان میدهد:

Cannot find module 'ts-transformer-keys'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?ts(2792)

چرا این اتفاق افتاد؟ برای رفع این مشکل چه کار باید بکنم؟ من قبلاً دستور yarn را اجرا کردهام. نسخه Node 16.13.2 است.

پاسخ شماره ۱

این پیام خطا میگوید چگونه این مشکل را برطرف کنید، وضوح ماژول پیشفرض تایپاسکریپت کلاسیک است، این به دنبال ماژولها در node_modules نخواهد گشت. به همین دلیل میگوید ماژولی که در پوشه node_modules است پیدا نشده است. اطلاعات بیشتر را میتوانید از اینجا بخوانید: https://www.typescriptlang.org/docs/handbook/module-resolution.html، بنابراین برای رفع مشکل خود، سعی کنید "moduleResolution": "node16" را در فایل "tsconfig.json" (یا "jsconfig.json") اضافه کنید:

"compilerOptions": {
    //...
    "moduleResolution": "node16",
}

پاسخ شماره ۲

بعد از اینکه "moduleResolution": "node" را اضافه کردید، اگر هنوز هم خطا دریافت میکنید، سعی کنید VS Code را ببندید و دوباره باز کنید.

این بعد از اضافه کردن ts به یک پروژه موجود nextjs برای من کار میکند.