'react-native start' 오류 해결 방법
방금 node.js & cli를 설치했습니다.
- 설치 완료 node.display
설치된 react-module-cli
npm -g react-native-cli
그리고 '새로운 프로젝트'를 만들었다.
react-native init new_project
그리고 그 'new_project' 디렉토리에서 메트로 번들러가 제대로 작동하는지 확인하느라 지쳤어요.
react-native start
하지만 명령에서 다음 오류가 발생하여 지하철이 시작되지 않습니다.이 오류를 해결할 수 있는 단서가 있습니까? (Windows 10 OS를 사용하고 있습니다.)
- 명령어:
C:\projects\new_proj>react-native start
에러 정규식이 무효입니다./(.\fiplacteres.|node_modules[]react[]dist[.|website\node_modules.|heapCapture\bundle.js|.\syslogs)$/: 종료되지 않은 문자 클래스입니다.자세한 내용은 --verbose 플래그를 사용하여 CLI를 실행하십시오.구문 오류:잘못된 정규 표현식입니다. /(.\fiatures.|node_modules[]react[]dist[.|website\node_modules.|heapCapture\bundle.js|.\syslogs)$/: getBlacklist의 새로운 RegExp()에서 종료되지 않은 문자 클래스(D:\projects\new_proj\node_modules\metro-config\src\defaults\blacklist.js:34:10)RE(D:\projects\new_proj\node_modules\react-native\node_modules\react-native\cli\build\tools\loadMetroConfig.js:69:59)는 getDefaultConfig(D:\projects\new_proj\node_modules\react-native\node_modules\react-modules\react_modules\native_modules\react_modules\js:85:20)를 로드(D:\projects\new_proj\node_modules\react-native\native\cli\build\tools\loadMetroConfig.js:121:25)하여 오브젝트.runServer [as func](D:\projects\new_proj\proact-modules\modules\nates\native\re-nates\native\communes\commun)로 설정합니다.handleAction(D:\projects\new_proj\node_modules\react-native\node_node_node_modules@react-native-community\cli\cliEntry).js:160:21)를 Command.emit(events.js:210:5)에서 Command.listener(D:\projects\new_proj\node_modules\commander\commander.js:315:8)로 설정합니다.
- 명령어:
오늘 처음으로 비슷한 오류가 발생했습니다.에 기재되어 있습니다.\node_modules\metro-config\src\defaults\blacklist.js
변경이 필요한 비활성 정규 표현이 있습니다.첫 번째 표현을 바꿔서sharedBlacklist
송신원:
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__\/.*/
];
이는 노드 v12.11.0이 이 문제를 해결하는 두 가지 방법으로 인해 발생합니다.
방법 I
노드 v12.10.0으로 다운그레이드 할 수 있습니다.이것에 의해, 해석 에러를 올바르게 처리하는 방법이 적용됩니다.
방법 II
다음 위치에 있는 파일을 변경하면 정규 표현을 올바르게 종료할 수 있습니다.
\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__\/.*/
];
이는 블랙리스트 파일 구성이 일치하지 않기 때문입니다.
그걸 해결하기 위해서
프로젝트 폴더로 이동해야 합니다.
.
\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__\/.*/
];
[빠른 답변]
일부 NPM 및 노드 버전을 사용하는 Metro에 문제가 있습니다.
의 코드를 할 수 .\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__\/.*/
];
npm install 또는 yarn install을 실행하는 경우 코드를 다시 변경해야 합니다.
두 가지 솔루션이 있습니다.
노드를 V12.10.0으로 다운그레이드하거나 작성하는 모든 프로젝트에 대해 이 파일을 수정할 수 있습니다.
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__\/.*/
];
내 프로젝트에는 메트로 컨피규레이션이 없습니다.이제 어떻게 하죠?
나는 꽤 오래된 프로젝트에는 없다는 것을 알았다.metro-config
node_modules
이 그런
node_modules/metro-bundler/src/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__\/.*/
];
추신: 저도 몇 가지 프로젝트에서 같은 상황에 직면했기 때문에 공유하면 누군가에게 도움이 될 수 있다고 생각했어요.
편집
@beltrone의 코멘트에 따르면 파일도 존재할 수 있습니다.
node_displays\src\displays.displays
저도 같은 문제가 생겼어요.
"오류 정규식이 잘못되었습니다. /(.\fipluces\).|node_modules[\]react[\]dist[\]|website\node_modules\].|heapCapture\bundle.js|.\syslog\)$/: 종료되지 않은 문자 클래스입니다."
의 합니다.\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__\/.*/
];
이 변경으로 오류가 해결되었습니다.
프로젝트에서 E:\NodeJS\ReactNativeApp\ExpoTest\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__\/.*/
];
이것은 나에게 완벽하게 작용했다
수정이 포함된 PR이 메트로 저장소에 병합되었습니다.이제 다음 발매 때까지 기다리면 돼요.현시점에서는 노드로 다운그레이드하는 것이 가장 좋습니다.JSv12.10.0
브랜든이 지적한대로, 어떤 수정이든node_modules/
매우 나쁜 관행이기 때문에 최종적인 해결책은 되지 않습니다.
해결책은 간단하지만 일시적인...
「」를 하고 있는 는, 해 주세요.npm install
★★★yarn install
시시시 시시!
그럼 어떻게 하면 자동으로 실행할 수 있을까요?
영속적인 솔루션
모듈 후 이를 으로 수행하려면 '자동'을 합니다.patch-package
.
- 를 수정합니다.
metro-config
: 오류 오류 해결:
이 에 됩니다.\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__\/.*/
];
- 다음으로 영속적인 패치파일을 생성합니다.
npx patch-package metro-config
- 고객님의 고객명
package.json
패치를 트리거합니다.
"scripts": {
+ "postinstall": "npx patch-package"
}
끝!이제 이 패치는 다음 시간에 만들어질 것입니다.npm install
yarn install
.
https://github.com/ds300/patch-package 덕분에
https://github.com/facebook/metro/issues/453
react-patching, expo에서 공식 패치 없이 여전히 이 오류를 얻는 사람들을 위해
실을 사용하여 패키지에 이 설정을 추가합니다.json
{
...
"resolutions": {
"metro-config": "bluelovers/metro-config-hotfix-0.56.x"
},
...
에 가다
\node_module\module-config\src\module\module.module
이것을 교환해 주세요.
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__\/.*/
];
이는 베스트 프랙티스가 아닙니다.노드 버전을 12.9로 다운그레이드하거나 노드 문제를 수정하고 있으므로 metro-config를 갱신하는 것이 좋습니다.
당신은 갈 수 있습니다.
\node_module\module-config\src\module\module.module 및 변경...
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__\/.*/
];
방금 업데이트한 패키지가 있습니다.에서 변경할 수 있습니다.
"react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz"
로.
"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz"
sdk-36에서는 문제가 발생하지 않을 것 같습니다!!
노드 버전은 v12.16.0이고 os는 win10입니다.
노드를 에서도 같은 「」를 했을 입니다.v12.9.0
문제가 해결되었습니다. 용 i i i i를 쓴다.nvm
노드 버전을 쉽게 다운그레이드할 수 있습니다.
는 파일 수정은.node_modules/
(또는 저장소의 일부로 커밋되지 않은 경우) 다음 클린, 빌드 또는 업데이트 시 해당 데이터가 퇴보합니다.나는 분명히 과거에 그렇게 한 적이 있고 그것은 나를 몇 번 물어뜯었다., , ,, 것, 로, 로, 로, 로, 로, 로, 로, but, but, but, but, but, but, but, but, but, but, but, but, but, fix but로metro-config
갱신되었습니다.
감사합니다!
regexp.가 서서 from from에서 되어 있는 것을 했습니다.node v12.11.0
「」가 될 가능성이 .v8
엔진이 원인입니다.자세한 것은, https://github.com/nodejs/node/releases/tag/v12.11.0 를 참조해 주세요.
D:\code\react-native>nvm use 12.10.0
Now using node v12.10.0 (64-bit)
D:\code\react-native>node
Welcome to Node.js v12.10.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[\\/\\\\]react[\\/\\\\]dist[\\/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\\\]react[\\\\\\\\]dist[\\\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>
D:\code\react-native>nvm use 12.11.0
Now using node v12.11.0 (64-bit)
D:\code\react-native>node
Welcome to Node.js v12.11.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>
D:\code\react-native>nvm use 12.13.0
Now using node v12.13.0 (64-bit)
D:\code\react-native>node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>
D:\code\react-native>nvm use 13.3.0
Now using node v13.3.0 (64-bit)
D:\code\react-native>node
Welcome to Node.js v13.3.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>
문제를 해결한 최신 버전(현재는 0.57.0)의 metro-config를 설치하여 문제를 해결합니다.
npm install metro-config
나중에 리액트 리액트 리액트 리액트 리액트 리액트 리액트 리액트 리셋 후
위의 코멘트는 모두 훌륭하며, 편집이 필요한 블랙리스트 파일에 대해 저와 함께 작업한 경로를 공유합니다.
"프로젝트명\node_modules\metro-bundler\src" 파일명 "blacklist.js"
오늘 바로 이 문제에 부딪혔지만, 위의 답변 중 어느 것도 해당되지 않았습니다.node_modules를 로컬로 변경/패치하거나, 실로만 처리되는 해상도를 추가하는 것은 단기적이든, 결코 해결책이 되지 않기 때문입니다.
전혀 놀랍지 않아, 패키지.json은 종속성 버전을 업데이트해야 했기 때문에 CLI를 눌러 패키지가 있는 프로젝트 디렉토리로 변경했습니다.json이 발견되어 다음 라인이 작업을 수행했습니다.
- npm install -g npm-check-module
- ncu -u
- npm 설치
첫 번째 행은 패키지로 제공되는 모든 (개발) 디프를 나열하는 도구를 글로벌하게 설치합니다.업그레이드 할 수 있는 json.두 번째 명령어는 package.json 내의 버전 번호를 자동으로 조정합니다.마지막 행은 노드 모듈을 재설치합니다.npm install 대신 yarn을 사용하는 것도 문제 없습니다.
이제 리액션 네이티브는 예상대로 작동합니다.
자, 제 해결책은 이렇습니다.
행::npm update --filter
이 명령은 반응 네이티브 앱을 실행하는 데 필요한 모든 종속성을 업데이트합니다.
다음 분.
행::npm start // expo start
언급URL : https://stackoverflow.com/questions/58120990/how-to-resolve-the-error-on-react-native-start
'programing' 카테고리의 다른 글
REST API - 파일(이미지) 처리 - 베스트 프랙티스 (0) | 2023.03.18 |
---|---|
Reactjs: HTML 템플릿을 다른 파일에 넣는 방법 (0) | 2023.03.18 |
Ajax 요청: 안전하지 않은 헤더 설정을 거부했습니다. (0) | 2023.03.18 |
webpack dev 서버 CORS 문제 (0) | 2023.03.18 |
Ruby JSON 구문 분석 변경 해시 키 (0) | 2023.03.18 |