راهنمای رفع خطای Cannot find module @Nestjs/common

راهنمای رفع خطای Cannot find module @Nestjs/common
08 - دی - 1403

در این پست آموزشی، خطایی که در هاست های نودجی اس پارس وب سرور در پروژه‌های nestjs ممکن است مواجه شوید را بررسی و روش رفع آن را مرور می‌کنیم.

معرفی فریمورک NestJs به عنوان قوی‌ترین فریمورک برای بک‌اند

NestJs یکی از فریمورک‌های نود جی اس (NodeJs) هست که برای پروژه‌های بزرگ و چالش برانگیز مناسب می‌باشد.

فریمورک NestJs بر پایه ی TypeScript ساخته شده است. این موضوع به توسعه دهندگان اجازه می‌دهد تا کدهای بسیار تمیزتر و مختصرتر بنویسند و تشخیص خطا را بسیار ساده کرده و همچنین درک و توسعه کد را در طول زمان آسان‌تر می‌کند.

یکی از مزایای NestJS این است که این فریمورک بر اساس معماری ماژولار ساخته شده است که سازماندهی و مقیاس‌بندی برنامه‌های بزرگ را آسان می‌کند.

این فریمورک مجموعه‌ای شامل Provider ،Controller و Module را برای ایجاد یک ساختار ماژولار بکار می‌گیرد که به راحتی قابل مدیریت است.

 

تزریق وابستگی (Dependency Injection) در NestJS

NestJS از تزریق وابستگی (DI) برای مدیریت جریان وابستگی‌ها بین ماژول‌ها استفاده می‌کند که این کار، تست و نگهداری کد را آسان‌تر می‌کند؛ زیرا این امکان را می‌دهد تا اجزای پروژه را جدا کرده و آنها را به صورت مجزا آزمایش و تست کرد.

NestJS از وب سرویس‌های زیادی پشتیبانی می‌کند، از جمله این وب‌سرویس‌ها می‌توان به GraphQL ،WebSockets و Microservices اشاره کرد.

با استفاده از این وب‌سرویس‌ها می‌توان با nestjs برنامه‌های کاربردی جدید که نیاز به ارتباطات بلادرنگ (realTime) دارند را ایجاد کرد.

یه صورت کلی در NestJSبا 5 مفهوم کلی سر و کار خواهیم داشت که شامل موارد زیر می‌باشد:
Controllers, Providers, Modules, Middleware, Exception Filters

از لحاظ فنی، فریمورک نست‌جی‌اس (NestJS) عناصری را از فریمورک‌های انگولار (Angular)، اکسپرس جی اس (ExpressJS) و فستیفای (Fastify) به ارث برده که در واقع ساختاری شبیه به انگولار دارد و در هسته‌ی داخلی خود به طور پیش‌فرض از اکسپرس جی اس (ExpressJS) برای توسعه‌ی بک‌اند استفاده می‌کند که با تغییر کانفیگ‌ها و تنظیمات می‌تواند بجای اکسپرس از فریمورک فستیفای (Fastify) برای توسعه‌ی بک‌اند استفاده کرد.

برای مشاهده مستندات نست‌جی‌اس (NestJS) و کسب اطلاعات بیشتر، می‌توانید به صفحه مستندات nestjs مراجعه کنید.

شما برای راه‌اندازی پروژه‌های نود جی اس (NodeJs) و نست‌جی‌اس باید ابتدا یکی از سرویس‌های‌هاست نود جی اس را تهیه کنید.

البته بر روی سرویس‌های‌هاست پایتون هم دقیقا همان امکانات‌هاست نود جی اس وجود دارد و امکان راه‌اندازی پروژه‌های نست‌جی‌اس وجود دارد.

برای مشاهده قیمت‌ و مشخصات می‌توانید به لینک زیر مراجعه بفرمایید.

لیست جزئیات و مشخصات سرویس‌هاست نودجی اس

همینطور به طور کلی برای راه‌اندازی پروژه‌های نود جی اس می‌توانید طبق آموزش زیر اقدام بفرمایید:

راه‌اندازی پروژه NodeJS با قابلیت NodeJS Application

 

خطای cannot find module @Nestjs/common

یکی از خطاهایی که در زمان راه‌اندازی پروژه نست‌جی‌اس ممکن است با آن مواجه شوید خطای زیر می‌باشد:

cannot find module ‘@Nestjs/common’ or its corresponding type declarations

خطای Cannot-find-module-Nestjs-common

برای رفع مشکل و خطا راه‌ حل‌های زیر پیشنهاد می‌شود:

راه حل اول :
در مسیر پروژه، دستور زیر را در ترمینال وارد می‌کنیم.

npm install @nestjs/common
npm install @nestjs/core

با اجرای دستور زیر اگر این دو پکیج نصب نباشند، نصب می‌شوند و سپس پروژه را استاپ استارت می‌دهیم.

 

راه حل دوم:
در صورت عدم رفع مشکل، فایل package.json را باز می‌کنیم و داخل این فایل تمام مواردی که با @nestjs/core“: “X.X.X” شروع می‌شود را حذف می‌کنیم.

در ترمینال در مسیر پروژه، دستور زیر را وارد می‌کنیم :

npm uninstall @nestjs/core @nestjs/common @nestjs/microservices @nestjs/platform-express

بعد از حذف، در ترمینال دستور نصب ورژن جدید را وارد می‌کنیم و پس از نصب مجدد پروژه را استاپ/ استات می‌کنیم.

npm i @nestjs/core@10.3.8 @nestjs/common@10.3.8 @nestjs/microservices@10.3.8 @nestjs/platform-express@10.3.8*

* در حال حاضر ورژن 10.4.15 جدیدتری ورژن نست‌جی‌اس می‌باشد.

توجه داشته باشید برای نصب و راه‌اندازی باید از ورژن 18 و بالاتر نود جی اس استفاده شود.

در صورت بروز هر گونه مشکل و یا سوال می‌توانید درخواست پشتیبانی ارسال کنید تا همکاران بخش فنی، در اسرع وقت پاسخگوی سوالات شما باشند و راهنمایی‌های لازم خدمت شما ارائه شود. (ارسال درخواست پشتیبانی)

5/5 - (1 امتیاز)
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

[bws_google_captcha]