راه حل مشکل Unable to resolve module `./index` from `\node_modules\react-native\scripts/


همانطور که در جریان هستید فیسبوک در نسخه جدید React Native یعنی 0.59.2 یک سری قابلیت ها و ویژگی های جدید به همراه تغییرات را منتشر کرد.اما بعد از بروزرسانی react native به نسخه جدید یا ایجاد پروژه با آخرین نسخه به یک مشکل عمومی برخوردیم. این error مربوط به Metro server است.زمانی که ما پروژه React Native خودمان را اجرا میکنیم سپس یک دایرکتوری اشتباه اجرا می شود بنابراین root پروژه به launchPackager پاس داده نمی شود.
اسکرین شات از error:
Error: Unable to resolve module ./index
from `\node_modules\react-native\scripts/ Solution
Since we all know react native has recently launched its newly more compatible 0.59.2 version with some basic changes. But after upgrading to new version or creating new react native project we all have faced a common error. The error is coming from the Metro server instance. When we run our react native project then it will launched with wrong working directory and no project root is passed in launchPackager.
Screenshot of Error:
Error Message
Error: Unable to resolve module ./index from \node_modules\react-native\scripts/. : The module ./index could not be found from \node_modules\react-native\scripts/. Indeed, none of these files exist
1.به Your_React_Native_Project -> node_modules -> react-native -> scripts -> launchPackager.bat بروید و فایل launchPackager.bat را در Notepad یا ++Notepad باز کنید.
2.خط کد زیر را در فایل launchPackager.bat قرار دهید
1 |
launchPackager.bat |
سورس کد فایل launchPackager.bat بعد از تغییرات:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
:: Copyright (c) Facebook, Inc. and its affiliates. :: :: This source code is licensed under the MIT license found in the :: LICENSE file in the root directory of this source tree. @echo off title Metro Bundler call .packager.bat node "%~dp0..\cli.js" start node "%~dp0..\cli.js" start --projectRoot ../../../ pause exit |
3.حالا ما باید مسیر root پروژه را به metro object بدهیم. بنابراین فایل runAndroid.js را در مسیرReact_Native_Project -> node_modules -> @react-native-community -> cli -> build -> commands -> runAndroid.js با Notepad باز می کنیم.
4.cwd: scriptsDir را در بلاک const procConfig باز می کنیم.
1 2 3 |
const procConfig = { cwd: scriptsDir }; |
5.cwd: scriptsDir را با ()cwd: process.cwd جایگزین و ذخیره می کنیم.
1 2 3 4 5 |
const procConfig = { cwd: process.cwd() }; |
6.حالا دایرکتوری پروژه را در command prompt یا Terminal باز کنید و دستور react–native run–android را اجرا کنید.به همین سادگی مشکل شما برطرف و پروژه شما اجرا خواهد شد.
دیدگاهتان را بنویسید