رفع خطای error:0308010c:digital envelope routines::unsupported در پروژه های جنگو
ممکن است هنگام راه اندازی پروژه Node.js و React با خطای "error:0308010c:digital envelope routines::unsupported" در ترمینال مواجه شوید. این ارور معمولاً زمانی رخ می دهد که مشکلی در OpenSSL و الگوریتم های رمزنگاری مورد استفاده توسط Node.js وجود داشته باشد. به صورت کلی مشکل مذکور اغلب به ناسازگاری بین نسخه Node.js و نسخه OpenSSL نصبشده روی سیستم اشاره دارد.
در ادامه اقدامات لازم جهت رفع خطای فوق توضیح داده خواهد شد:
1- تغییر نسخه Node.js:
این خطا ممکن است به دلیل نسخه Node.js مورد استفاده شما باشد. از همین رو می توانید نسخه های دیگر Node.js را تست نمایید. جهت تغییر نسخه Node.js، پس از وارد شدن به سی پنل از بخش "Software" منوی "Setup Node.js App" را انتخاب کنید.
.webp)
در بخش "Web applications" روی گزینه مداد، روبروی نام پروژه خود کلیک نمایید. (تصویر2)
.webp)
همانند تصویر3، روی ورژن فعلی (شماره1) کلیک کنید تا نسخه های متفاوت Node.js را به شما نمایش دهد.
یکی از نسخه های Node.js (شماره2) را انتخاب و سپس روی "SAVE" کلیک کنید تا تغییرات ذخیره گردد (شماره3). پس از تغییر نسخه، یک بار دیگر برنامه را "RESTART" (شماره4) و نتیجه را بررسی نمایید.
.webp)
2- افزودن متغیر محیطی در سی پنل
همانند توضیحات قبل، در سی پنل با انتخاب Web applications از منوی Setup Node.js App، بخش مربوط به ویرایش پروژه خود را باز کنید.
سپس در قسمت "Environment variables" روی "ADD VARIABLE" کلیک نمایید. (تصویر4)
.webp)
فیلدها را همانند تصویر5 با مقادیر زیر تکمیل نمایید و روی "DONE" کلیک کنید.
Name(بخش1) : NODE_OPTIONS
Value(بخش2) : --openssl-legacy-provider
.webp)
سپس مجدد برنامه را "RESTART" و نتیجه را بررسی نمایید. (تصویر6)
.webp)
3- افزودن کد به package.json
در سی پنل به مسیر پروژه خود در File Manager بروید. روی فایل "package.json" راست کلیک کرده و سپس "Edit" را انتخاب نمایید. (تصویر 7)
.webp)
"build": "react-scripts --openssl-legacy-provider build",
مجدد به صفحه ویرایش پروژه خود بروید و یک بار آن را "RESTART" و نتیجه را مشاهده نمایید.
4- نصب مجدد وابستگی ها
خطا ممکن است به دلیل عدم نصب صحیح برخی از پکیج ها و نیازمندی ها رخ داده باشد. در این حالت حذف و ایجاد مجدد پوشه "node_modules" در پروژه می تواند باعث رفع خطا گردد.
در صفحه ویرایش پروژه، روی عبارت مشخص شده در تصویر8 کلیک نمایید تا عبارت به صورت خودکار کپی گردد.
.webp)
سپس به صفحه اول سی پنل بازگردید و از قسمت "Advanced" وارد منوی "Terminal" شوید.
.webp)
ابتدا کد کپی شده را در "Terminal" وارد نمایید و "ENTER"بزنید تا ورود به مسیر پروژه انجام شود.
.webp)
سپس قطعه کد زیر را جهت حذف node_modules در "Terminal" اجرا نمایید.
rm node_modules
پس از حذف node_modules، کد زیر را جهت نصب مجدد نیازمندی ها در "Terminal" وارد کنید.
npm install
نهایتا در بخش "Setup Node.js App" مجدد پروژه را "RESTART"و نتیجه را بررسی کنید.