از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
رفع “نیاز تعریف نشده است” در جاوا اسکریپت/نود
سرفصلهای مطلب
یک خطای متداول که به خصوص هنگام انتقال از نوشتن جاوا اسکریپت در زمان اجرا Node به نوشتن جاوا اسکریپت در مرورگر با آن مواجه می شوید، این است:Uncaved ReferenceError: نیاز تعریف نشده استاین دو محیط روشهای مختلفی برای وارد کردن ماژولها دارند، بنابراین سعی شده است import کد در مرورگر مانند شما در Node منجر به این خطا می شود.
با این حال، این تنها بار نیست که ممکن است با این خطا مواجه شوید. در اینجا راه های مختلفی وجود دارد که ممکن است با آن مواجه شوید:
- شما سعی کنید از آن استفاده کنید
require
بیانیه در مرورگر - سعی کن استفاده کنی
require
در Node زمانی که ماژول های ES در آن مشخص شده اندpackage.json
از طریق"type": "module"
- شما سعی می کنید استفاده کنید
require
در فایلی که به.mjs
، که معمولا ماژول های ES را مشخص می کند
گره
اگر در محیط Node با این خطا مواجه شدید، احتمالاً مشخص کرده اید که از ماژول های ES استفاده کنید. package.json
یا از طریق خط فرمان
در صورتی که در آن مشخص شده باشد package.json
، می توانید این را برطرف کنید حذف کردن خط زیر در فایل:
{
"type": "module"
}
اگر مشخص کرده اید که از ماژول های ES از طریق خط فرمان با استفاده کنید --eval
، شما می توانید این را توسط حذف کردن را --input-type
پارامتر از فراخوانی خط فرمان
مرورگر
را require
روش در مرورگر موجود نیست. برای حل این مشکل، شما چند گزینه دارید که در اینجا به طور خلاصه به چند مورد از آنها می پردازیم.
می توانید از یک باندلر مانند استفاده کنید بسته وب، که کد جاوا اسکریپت شما را در قالبی که با مرورگر سازگار است کامپایل می کند. از نظر داخلی، باندلری مانند این، آن را حذف می کند require
بیانیه و در عوض کد را در یک فایل ادغام کنید. در برخی موارد، برخی باندلرها حتی ممکن است شما را تبدیل کنند require
تماس می گیرد import
زیرا توسط اکثر مرورگرها پشتیبانی می شود.
گزینه دیگر این است که فقط از ماژول های ES استفاده کنید که به طور بومی توسط اکثر مرورگرها پشتیبانی می شود. به منظور استفاده از این، شما باید تمام موارد خود را تبدیل کنید require
اظهارات به import
بیانیه. همچنین باید به صراحت نوع ماژول را در قسمت مشخص کنید <script>
برچسب، مانند این:
<script type="module" src="./app.js"></script>
روش رفع این مشکل ممکن است بستگی داشته باشد روی ترجیح شخصی، اگر از باندلر استفاده می کنید و غیره.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-07 00:50:04