مشکل پروکسی در فایل package.json در ری اکت
اگر در زمان ست کردن پروکسی در فایل package.json با خطای زیر مواجه شدید:
When specified, "proxy" in package.json must be a string.
[1] Instead, the type of "proxy" was "object".
[1] Either remove "proxy" from package.json, or make it a string.
مربوط به Create React App (CRA v2) میشود. از آنجایی که استفاده از یک شی برای پروکسی بعنوان تنظیمات پیشرفته در نظر گرفته میشود، شما باید از یک کتابخانه به نام http-proxy-middleware استفاده کنید. مراحل زیر را برای رفع مشکل دنبال کنید:
1. نصب http-proxy-middleware:
با استفاده از دستورات npm یا yarn این کتابخانه را نصب کنید:
npm install http-proxy-middleware --save
یا
yarn add http-proxy-middleware
2. ایجاد فایل تنظیم پروکسی:
یک فایل جدید به نام setupProxy.js
در پوشه src
پروژه ریاکت خود ایجاد کنید و کد زیر را در آن قرار دهید:
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy('/auth/google', { target: 'http://localhost:5000/' }));
};
3. اعمال تنظیمات در package.json:
اگر قبلاً پروکسی را در package.json تنظیم کردهاید، باید آن را حذف کرده و از تنظیمات پروکسی استفاده کنید که در setupProxy.js
تعریف کردهاید.
هر بار که یک درخواست به /auth/google
ارسال میشود، پروکسی آن را به http://localhost:5000/
منتقل خواهد کرد.
توجه داشته باشید که اگر هنوز با خطای 404 مواجه شدید، بررسی کنید که سرور مقصد (در این مورد localhost:5000) در حال اجرا باشد و درست به درخواستها پاسخ دهد.
برای اطلاعات بیشتر میتوانید به مستندات رسمی CRA مراجعه کنید و همچنین لینکهایی که به مهاجرت به روش جدید پروکسی اشاره دارند، را بررسی کنید.