yarn은 안 되고 npm은 되는 현상 / child_process.js:122

Jake Seo·2020년 5월 20일
0

문제해결잡지식

목록 보기
2/20

문제

yarn으로 실행하면 에러가 나고

npm으로 실행하면 잘 된다?

에러의 내용은 아래와 같다

C:\Users\IWAZ\react-blog-2020_NRN>yarn start
yarn run v1.22.4
$ now dev --listen 9999
> UPDATE AVAILABLE Run `yarn add now@latest` to install Now CLI 19.0.1
> Changelog: https://github.com/zeit/now/releases/tag/now@19.0.1
> Now CLI 16.7.3 dev (beta) — https://zeit.co/feedback
> Creating initial build
child_process.js:122
  p.open(fd);
    ^

Error: EBADF: bad file descriptor, uv_pipe_open
    at Object._forkChild (child_process.js:122:5)
    at setupChildProcessIpcChannel (internal/bootstrap/pre_execution.js:325:30)
    at prepareMainThreadExecution (internal/bootstrap/pre_execution.js:51:3)
    at internal/main/run_main_module.js:7:1 {
  errno: -4083,
  code: 'EBADF',
  syscall: 'uv_pipe_open'
}
Done in 16.42s.

해결

node.js 코어쪽 코드 때문인 것 같은데
process.fork가 잘 안되는 것 같다.
사실 아직 마땅한 해결책은 찾지 못했다.
npm으로 실행하면 실행은 되는데 제대로 실행되진 않는다.
아직 해결법을 찾는 중이다...

해결(추가)

위 프로젝트(next-right-now) 의 특징은 윈도우즈를 전혀 테스팅해보지 않고 지원 계획도 없다는 것이었다.
그래서 이 프로젝트는 '리눅스 혹은 Mac OS'에서만 돌아간다고 설명에 적혀있었다.
그걸 무시하고 계속 윈도우에서 돌리려다가 저 에러가 반복해서 떴던 것이다.
어떤 패키지가 윈도우즈 호환이 안되는지 알아내는 것은 실패했지만,
(cypress가 유력해서 cypress를 지워봤는데도 안됨.)
아무튼 결국에는 다른 방법으로 해결했다.

윈도우즈에 wsl2라는 것이 있는데,
이걸 사용하면 윈도우즈에서 리눅스와 비슷한 환경을 구축할 수 있다.
WSL은 Windows Subsystem for Linux 라는 뜻이다.

WSL을 이용하여 프로젝트를 실행하니 프로젝트가 정상적으로 잘 실행됐다.

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글