- 먼저 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'라고 검색한 후, 검색한 해결법을 실행해본다.
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
하지만 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로 낮춰보기로 한다.
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
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
... 결과 ...
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 init이 잘 작동한다! gitbook serve까지 실행하여 세팅을 마무리한다.