- 키워드: gitbook, gitbook-cli, graceful-fs, npm, node, nvm, terminal
- 상황
- gitbook 관련 작업을 하시는 동료로부터 gitbook cli에서 알 수 없는 에러가 발생한다는 얘기를 들었다.
- 사용해보진 않은 툴이었지만 npm package와 terminal에 익숙하지 않은 분이라 직접 도움을 드리기로 했다.
- 해결 과정
- 먼저 gitbook의 README에 따라 gitbook을 install하고 init 해본다.
npm install gitbook-cli -g gitbook init
그러면 아래와 같은 에러가 발생한다.
if (cb) cb.apply(this, arguments)
TypeError: cb.apply is not a function
at .../lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:285:20 - 구글에 'gitbook cp.apply graceful-fs error'라고 검색한 후, 검색한 해결법을 실행해본다.
하지만 gitbook init을 실행하면 새로운 에러가 발생한다.cd ...example/.nvm/versions/node/v16.13.0/lib/node_modules/gitbook-cli/node_modules/npm/node_modules npm install graceful-fs@latest --save gitbook init
TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise - 해당 에러를 구글링하여 해결법을 찾는다.
https://www.itcan.cn/2022/03/24/gitbook-init-error/
현재의 node version(v16)이 너무 높은 것 같아 version 12로 낮춰보기로 한다.
gitbook init을 실행해도 아무런 동작도 하지 않는다.rm -rf ~/.gitbook nvm use 12 npm install gitbook-cli -g cd ...example/.nvm/versions/node/v12.22.0/lib/node_modules/gitbook-cli/node_modules/npm/node_modules npm install graceful-fs@latest --save gitbook init
- 처음과 같이 graceful-fs의 문제일 것이라 추측하고, graceful-fs npm을 살펴보았다.
https://www.npmjs.com/package/graceful-fs
최근 몇 달간 version update가 여러차례 있었기 때문에, 답변에 적힌 graceful-fs@latest가 현재에는 적용되지 않을 수도 있다.
issue의 답변을 더 꼼꼼히 살펴보고 graceful-fs@4.2.0을 사용했다는 유저를 발견했다.
https://github.com/GitbookIO/gitbook-cli/issues/110#issuecomment-1101327973
이제 gitbook init이 잘 작동한다! gitbook serve까지 실행하여 세팅을 마무리한다.gitbook init gitbook serve ... 결과 ... Live reload server started on port: 35729 Press CTRL+C to quit ... info: 7 plugins are installed info: loading plugin "livereload"... OK info: loading plugin "highlight"... OK info: loading plugin "search"... OK info: loading plugin "lunr"... OK info: loading plugin "sharing"... OK info: loading plugin "fontsettings"... OK info: loading plugin "theme-default"... OK info: found 1 pages info: found 0 asset files info: >> generation finished with success in 0.3s ! Starting server ... Serving book on http://localhost:4000
- 먼저 gitbook의 README에 따라 gitbook을 install하고 init 해본다.
- 의의
- version 관련 에러가 발생했을 때에는 node version과 npm package의 version을 고려해야한다.
- 버그의 해결법을 찾았을 때는 현재에도 적용할 수 있는지 고려해야한다.
'프론트엔드' 카테고리의 다른 글
Junction Asia 2022 해커톤 참가/수상 후기 (3) | 2022.09.14 |
---|---|
backdrop-filter, box-shadow 크로스 브라우징하기 (0) | 2022.07.03 |
ESLint custom rule(plugin) 만들기 (0) | 2022.06.12 |
iframe으로 Vue to React Migration 준비하기 (0) | 2022.06.12 |
JENNIFER Front로 웹사이트 모니터링하기 (0) | 2022.05.22 |