gitbook安装错误:TypeError: cb.apply is not a function
提纲
1、问题描述
2、解决办法
1 问题描述
最近在写一本关于rust的书,使用到了gitbook,所以就探索了一下gitbook,但是在刚暗转过了gitbook-cli后,验证gitbook版本号的命令就出错了,具体错误如下:
#首先要安装node,这是第一步,必须要做,否则其他步骤没法做,因为gitbook是基于node写出来的一个软件。
#第二步,安装gitbook-cli项目,使用npm安装,gitbook-cli项目就是gitbook
npm install gitbook-cli -g
#第三步,验证gitbook是否安装成功,这一步如果正常输出gitbook-cli的版本和gitbook的版本,那么就说明gitbook安装成功了,如果没有正常输出,反倒还报错了,说明gitbook没有安装成功
gitbook -V
#我在这一步恰巧就是没有成功,而是输出了错误信息。
$ gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
C:\Users\91613\AppData\Roaming\npm\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at E:\software\nvm-noinstall\v22.12.0\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287:18
at FSReqCallback.oncomplete (node:fs:209:5)
2、报错解决办法
看错误消息就是说polyfills.js这个文件中代码出错了。从网上查询了一些资料,发现解决办法有2个:
1)出现这个错误,是因为node版本过高,与gitbook不兼容,那么解决方法就是降低node版本,或者用nvm管理多个版本的node,讲gitbook安装在低版本的node中。
我恰好就是用nvm管理多版本node的,所以我可以使用这个方法:
nvm install 10.14.1
nvm use 10.14.1
这样安装了node的10.14.1,使用这个版本,然后在这个版本node下安装gitbook,就不会出错了。
我本来可以使用这个方法解决问题,但是我没用这个方法,因为我日常最常使用的node版本是22.12.0,我不想切换来切换去,我就想只用一个node版本。
2)第二个方法,就是不换node版本,而是直接解决这个问题。
打开polyfills.js文件,在287行看到一个函数statFix函数,然后这个函数在62、63、64等3行中被调用了,那么注释掉62、63、64这3行,就彻底解决这个错误问题了。
于是,我就这么做了。注释后,保存,重新执行gitbook -V发现果然不再报错。
$ gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3
参考资料:
1、https://download.csdn.net/blog/column/6680504/112121742

浙公网安备 33010602011771号