一、 gitbook -v command not found
背景
node 安装ok node -v 显示版本号
npm 安装ok npm -v 也显示版本号
本人安装npm install gitbook-cli -g 这个是ok的, 但是 gitbook -v不行- 从上面的语句得出是环境变量的问题,既然node与npm 都能出现版本。于是本人猜测可能是全局变量问题
- 解决办法
本人按node安装在[D:/node]下
修改默认的全局目录
npm config set prefix D:/node/nodejs/node_global/ //全局包目录,就在node安装目录新建了个nodejs文件夹存放
npm config set cache D:/ndoe/nodejs/node_cache/ //全局包缓存目录,就在node安装目录新建了个nodejs文件夹存放
配置环境变量
PATH: D:\node\nodejs\node_global\;
二、 使用gitbook时解决if (cb) cb.apply(this, arguments)
错误
2021-05-22 gitbook serve 运行又报错啦
D:\node\nodejs\node_global\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287
if (cb) cb.apply(this, arguments)
^
查看了一下polyfills.js内容,报错行数287行,代码如下:
function statFix (orig) {
if (!orig) return orig
// Older versions of Node erroneously returned signed integers for
// uid + gid.
return function (target, cb) {
return orig.call(fs, target, function (er, stats) {
if (!stats) return cb.apply(this, arguments)
if (stats.uid < 0) stats.uid += 0x100000000
if (stats.gid < 0) stats.gid += 0x100000000
if (cb) cb.apply(this, arguments)
})
}
}
这段代码应该是修改旧版本的问题的,导致的报错,但是其实并不需要修复。我直接查看他的调用,发现了62-64行调用代码,直接注释:
//fs.stat = statFix(fs.stat)
//fs.fstat = statFix(fs.fstat)
//fs.lstat = statFix(fs.lstat)
三、gitbook导出的本地html无法跳转问题解决方法
在_book文件夹中找到gitbook->theme.js文件
在代码中搜索 if(m)for(n.handler&&
将if(m)
改成if(false)
,再重新打开index.html即可