简 述: 欲用 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
时候会失败。此方式放弃。