流行就是一个轮回,从静态到动态,再回到静态。原因可能有很多,性能,成本,安全,易维护……总之,部署和使用静态网站的人越来越多了。Gitbook 提供了一整套静态网站的解决方案,插件丰富,对于像编写一些内部使用手册、说明文档的需求,可谓是得心应手。本文汇总记录 Windows 系统下安装和使用 gitbook 过程中可能会出现的一些异常问题及解决方法(内容收集整理自互联网)。
首先,简要介绍下 gitbook 安装及使用的基本步骤(熟悉的朋友可自行跳过):
- 安装:npm install -g gitbook-cli
- 验证:gitbook -V
- 初始化 gitbook 项目:gitbook init
- 安装插件:gitbook install
- 构建静态文件:gitbook build
- 本地运行静态网站:gitbook serve –port 3000
- 上传到网站空间:将 _book 目录打包上传
- 发布到 gitbook.com:gitbook publish
在这个过程中,可能会出现如下异常问题提示,可参照解决方法处理。
问题1:步骤2验证阶段,可能报“TypeError:cb.apply is not a function”的错误,见下图1。
解决办法:
根据提示,打开对应路径下的 polyfills.js 文件,并定位到第 62-64 行,注释掉即可。
// fs.stat = statFix(fs.stat)
// fs.fstat = statFix(fs.fstat)
// fs.lstat = statFix(fs.lstat)
问题2:步骤3初始化阶段,可能报“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”错误,见下图3。
解决办法:
打开“C:\Users\{用户名}\.gitbook\versions\{version}\lib\init.js”文件(大括号内的数据请自行替换),定位到第 72 行:
return fs.writeFile(filePath, summary.toText(extension));
替换为
return summary.toText(extension).then(stx=>{return fs.writeFile(filePath, stx);})
问题3:步骤4安装插件阶段,部分插件可能安装失败,报“Error: Couldn’t locate plugins “sitemap-general, favicon, 3-ba”, Run ‘gitbook install’ to install plugins from registry.”错误,如下图5。
解决办法:
通过 npm 工具逐个手动安装。
npm install gitbook-plugin-sitemap-general --save
npm install gitbook-plugin-favicon --save
npm install gitbook-plugin-3-ba --save
如果你在安装和使用 gitbook 过程中遇到过其他问题,欢迎留言讨论哦。