از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
رفع “نمی توان استفاده کرد import عبارت خارج از یک ماژول” در جاوا اسکریپت/نود
سرفصلهای مطلب
خطای رایجی که می بینیم، به خصوص در میان افرادی که تازه وارد جاوا اسکریپت شده اند، این است که سعی می کنند از آن استفاده کنند import
عبارت زمانی که CommonJS در حال استفاده است، که فقط از عبارت استفاده می کند require
بیانیه. این منجر به خطا می شود “Uncaved SyntaxError: نمی توان استفاده کرد import بیانیه خارج از یک ماژول“.
اگر با این خطا مواجه شده اید، ممکن است یک یا چند مورد از مشکلات زیر را داشته باشید:
- شما از نسخه Node < 13.2.0 استفاده می کنید
- شما از Node بدون برنامه مناسب استفاده می کنید
package.json
تنظیمات - شما از نسخه مرورگری استفاده می کنید که از ماژول های ES پشتیبانی نمی کند
- شما به درستی مشخص نکردید
type
در مرورگر شما<script>
برچسب زدن
این میتواند به سردرگمیهای زیادی منجر شود، به خصوص اگر شما تازه وارد جاوا اسکریپت شدهاید و از مثالهای شخص دیگری بدون اطلاع از انواع ماژولهای اساسی پیروی میکنید.
گره
Node به طور پیش فرض از ماژول های CommonJS استفاده می کند. برای رفع این مشکل در محیط Node، باید خود را ویرایش کنید package.json
فایل. به طور خاص، پارامتر زیر را به فایل اضافه کنید:
{
"type": "module"
}
همانطور که احتمالاً می توانید حدس بزنید، این باعث می شود که پروژه شما با فایل ها به عنوان ماژول های ES رفتار کند که به شما امکان می دهد از import
بیانیه. در غیر این صورت باید از آن استفاده کنید require
بیانیه.
پارامتر ورودی کمتر مورد استفاده قرار می گیرد --input-type
، که از طریق خط فرمان به Node ارسال می شود. از این می توان برای تعیین نوع استفاده کرد که به صورت زیر استفاده می شود:
$ node --input-type=module --eval "import { dirname } from 'path'; console.log(path.delimiter);"
اگرچه این بیشتر فقط در هنگام ارسال رشته ها به Node استفاده می شود eval
از طریق خط فرمان عمل کنید، اما در صورت نیاز راه حل دیگری است.
مرورگر
برای تعیین استفاده از ماژول ها در مرورگر، باید پارامتری را به آن ارسال کنید <script>
برچسبی که ماژول ها را وارد می کند. مثلا:
<script type="module" src="./app.js"></script>
این ویژگی توسط جاری نسخه تمام فروشندگان اصلی مرورگر، به جز IE 11.
نتیجه
در اینجا دیدیم که “نمی توان استفاده کرد import خطای عبارت خارج از ماژول” می تواند در جاوا اسکریپت/نود هنگام تلاش برای استفاده رخ دهد import عبارات بدون پیکربندی مناسب پروژه خود برای استفاده از یک سیستم ماژول.
در این مقاله، ما چند راه حل برای رفع این خطا، از جمله از طریق خط فرمان یا در package.json
فایل. با استفاده از این راه حل ها می توانید استفاده از import
در کد خود بیان کنید و مطمئن شوید که پروژه شما برای استفاده از یک سیستم ماژول به درستی پیکربندی شده است.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-07 02:51:03