# Gitbook安装 ## 简介 GitBook 是用来创建一个现代化的文档工具。比如经常被用编写系统文档、API 文档、数据库文档等。要使用 GitBook 必须安装 nodejs,以便能够使用 npm 来安装 gitbook。其次还能导出 pdf、epub、mobi 等格式文件。 ## 安装 安装Gitbook真是一波三折,刚开始我用Node.js版本>14.17.4,通过不断查找资料和尝试发现:使用版本较高的Node.js时,安装的gitbook使用始终会卡在 `Installing Gitbook 3.2.3` 这一BUG处,解决方案其实是将Node.js的版本降低,这样安装的Gitbook才可以正常使用,用v10.24.1版本。 首先安装nvm,这是什么呢?nvm就是node.js各类版本的管理器,随时能切换版本,可谓是神器。 ```bash #Linux安装 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash #Windows安装 https://github.com/coreybutler/nvm-windows/releases #下载nvm-setup.zip文件安装,傻瓜式安装即可,当然也会自动写入环境变量 #安装唯一需要注意的是安装路径不能有中文和空格 #还需要注意的是安装nvm时,需要卸载电脑上已有的node.js #一般安装好之后环境变量会自动设置好,但是NVM_SYMLINK下需要加一个空目录文件存放npm包 #安装好nvm下面就可以使用了 nvm -v nvm list #使用 nvm list //查看已安装的nodejs版本 nvm on // 启用node.js版本管理 nvm off // 禁用node.js版本管理(不卸载任何东西) nvm install // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0 nvm use //使用某一version的nodejs nvm uninstall // 卸载指定版本的nodejs #想要下载速度快点使用国内镜像就在settings.txt中补充镜像地址,这里使用默认的更好,所以下面的不用设置 #node_mirror: https://registry.npmmirror.com/binary.html?path=node/ #npm_mirror: https://registry.npmmirror.com/binary.html?path=npm/ #旧的 #node_mirror: https://npm.taobao.org/mirrors/node/ #npm_mirror: https://npm.taobao.org/mirrors/npm/ #settings.txt ==================================================================== root: D:\Software\nvm path: D:\Software arch: 64 proxy: none node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/ ==================================================================== #需要注意的是nvm需要管理员权限写环境变量哦 #安装v12.22.3版本的node.js nvm install v12.22.3 nvm use v12.22.3 #安装v10.24.1版本的node.js nvm install v10.24.1 nvm use v10.24.1 #继续配置阿里镜像仓库 npm config set registry http://registry.npmmirror.com #全局安装gitbook-cli npm install gitbook-cli -g #安装成功后显式版本 gitbook -V #gitbook使用也很简单 gitbook init gitbook build gitbook serve ``` ## BUG 这里有一个BUG需要处理一下,当然如果nodejs配置了10.x的版本这个错误就不会有,所以还是配置10.x的nodejs环境就好。 TypeError: cb.apply is not a function at D:\Software\nvm\v12.22.3\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287:18 at FSReqCallback.oncomplete (fs.js:169:5) 解决方案: ```bash 打开文件polyfills.js,注释掉65、66、67行内容 ======================================== fs.stat = statFix(fs.stat) fs.fstat = statFix(fs.fstat) fs.lstat = statFix(fs.lstat) ======================================== 这个BUG就可以顺利解决 ``` ## PDF 如果有必要导出PDF、upub等格式,还需要安装ebook-convert 以及 calibre 库。 ```bash npm install ebook-convert -g #安装成功则显式版本信息 ebook-convert --version ``` ## 使用 导出静态页面。 ```bash gitbook build ``` ## 插件 除了样式可以定制,我们还可以通过插件的形式定制更多的功能。GitBook 默认提供 highlight、search、sharing、fontsettings、livereload 5 个插件。