В момент запуска React Native (expo start или npm start) в консоли может появится ошибка — error Invalid regular expression.
Полный листинг будет примерно такой:
> expo start
Starting project at C:\OS\OSPanel\domains\imessenger.loc\imessenger
Expo DevTools is running at http://localhost:19002
Opening DevTools in the browser... (press shift-d to disable)
error Invalid regular expression: /(.*\\__fixtures__\\.*|node_modules[\\\]react[
\\\]dist[\\\].*|website\\node_modules\\.*|heapCapture\\bundle\.js|.*\\__tests__\
\.*)$/: Unterminated character class. Run CLI with --verbose flag for more detai
ls.
Metro Bundler process exited with code 1
Set EXPO_DEBUG=true in your env to view the stack trace.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ start: `expo start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ start script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Dmitriy\AppData\Roaming\npm-cache\_logs\2019-11-22T13_50_3
8_984Z-debug.log
Для решения данной проблемы, нужно открыть файл YOUR_PATH_TO_PROJECT\node_modules\metro-config\src\defaults\blacklist.js
И заменить переменную:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
На переменную:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
Между выше приведенными переменными есть всего несколько небольших отличий — в экранировании слешей, из-за чего происходит краш запуска системы, если не произвести замену.
Успехов, друзья, в мобильной разработке!