在终端中执行任何gitbook
命令时,将引发以下错误:
/home/travis/.nvm/versions/node/v12.18.3/lib/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 /home/travis/.nvm/versions/node/v12.18.3/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:169:5)
注意:在节点版本v12.18.2中不会发生这种情况,而在版本v14.6.0中仍然会发生gitbook-cli
现在似乎无法正常工作,因为它们过时的graceful-fs
依赖关系而失败。任何想法如何解决这一问题?
最佳答案
这个问题本来是graceful-fs
内部的问题,但我相信他们在this commit中解决了。
问题在于,GitBook仍在使用过时的依赖项,而这些依赖项在没有修复的情况下引入了graceful-fs的版本。
我发现的解决方案是像这样在gitbook中更新graceful-fs
:
如果您通过执行npm install -g gitbook-cli
全局安装了gitbook,那么您在macOS中的路径应该类似于/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules
。您的路径可能会有所不同,具体取决于您的操作系统或安装位置。
运行这个:
cd /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/
npm install graceful-fs@latest --save
然后尝试安装GitBook。它应该已经解决了安装问题。