简 述: 欲用 gitbook 来开启人生第一本书,结果安装、使用时候卡住了。。。这里记录一下;没想新的版本里面有坑。
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
结论
在 Linux 和 Mac 版本上,用 GitBook 3.2.3 版本, 只能对应使用 Node = v10.23.0 LTS 版本;使用 v12 、V14 版本会失败。 我在 UOS20 和 Mac 10.14.6 上面都逐一尝试过了。
前言
依次按照如下顺序安装:
- nvm :用来安装、管理切换 nodejs 的版本
- nodejs:运行所需要的环境
- npm: 用来安装 gitbook-cli(自动安装最佳 gitbook 版本)
- cnpm: 换源,使用 cnpm 替代 npm。
- 使用 gitbook 命令,预览和发布到 gitbook.com / github page
在 Linux 和 Mac 上做了如下尝试的。
Linux 安装 gitbook
Node v14.15.1
执行 gitbook init 会报错如下:
☁ book gitbook init
Installing GitBook 3.2.3
/home/xmuli/.config/nvm/versions/node/v14.15.1/lib/node_modules/gitbook-cli/node_modules/_npm@5.1.0@npm/node_modules/graceful-fs/polyfills.js:287
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /home/xmuli/.config/nvm/versions/node/v14.15.1/lib/node_modules/gitbook-cli/node_modules/_npm@5.1.0@npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:184:5)
Node = v12.20.0
执行 gitbook init 或者 gitbook serve 中一步会报错如同 Node v14.15.1 。
Node = v10.23
执行 gitbook init 成功,执行 gitbook serve 成功,可以使用;
虽然会卡很久(此时已经替换了 npm为淘宝源,采用的 cnpm 安装 gitbook),但是最后会成功。
Mac 安装 gitbook (尝试 node 版本)
如下都是安装 gitbook 3.2.3 版本尝试执行 gitbook init 或 git serve 看是否会报错;
Node v14.15.1
执行 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
Node v12.20.0
执行 gitbook init 成功,执行 gitbook serve 会报错如下;
Live reload server started on port: 35729
Press CTRL+C to quit ...
/Users/xmuli/.nvm/versions/node/v12.20.0/lib/node_modules/gitbook-cli/node_modules/_npm@5.1.0@npm/node_modules/graceful-fs/polyfills.js:287
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /Users/xmuli/.nvm/versions/node/v12.20.0/lib/node_modules/gitbook-cli/node_modules/_npm@5.1.0@npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:169:5)
Node v10.23.0
执行 gitbook init 成功,执行 gitbook serve 成功,可以使用;
其它
Gitbook serve 报错
后来在 Linux 中 使用 gitbook 3.2.3 + nodejs=v10.23.0 成功;当执行 gitbook serve 时候,报错如下(但是在 Mac 中却没有此问题):
Error: ENOENT: no such file or directory, stat
解决方案
这是 gitbook 3.2.3 的一个 bug;找到 ~\.gitbook\versions\3.2.3\lib\output\website\copyPluginAssets.js 路径,
将所有的 confirm :true 都替换为 confirm :false;成功
尝试降低/升级 gitbook
想着坚持使用 Node v14.15.1 版本; 更改为尝试 使用低版本的 gitbook,也试了高版本的 预览版本,但是执行 gitbook fetch x.x.x 时候会失败。此方式放弃。


