在终端中执行任何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。它应该已经解决了安装问题。

07-24 09:52