Duke Yin's Technology database

Gitbook的一些坑

版本

Node.js 要使用使用老的 12.18.1 版本才行

windows 64位安装包是 node-v12.18.1-x64.msi

linux安装包是 node-v12.18.1-linux-x64.tar.gz

最新版对Gitbook会有各种问题,不论是稳定版还是尝鲜版

停在 “Installing GitBook 3.2.*”

安装后,第一次执行任何gitbook命令,会出现:

CLI version: 3.2.*
Installing Gitbook 3.2.*
\

小斜杆会一直转啊转

解决方法:没什么好的解决方法,只能等着。

我等了大概有半小时,安装完成了。

有人说要替换Node.js的源,改成淘宝源,事实上是极其不推荐这么做的。非官方的,不值得信赖,所以只能等。

Linux下安装后Command not found

需要找到 /root/.bash_profile 编辑(每个安装的路径可能不一样)

在PATH变量的最后添加如下:

:$(npm prefix -g)/bin

保存

在回到/root/目录下,执行:

source .bash_profile

然后再执行gitbook -V就不会找不到命令了。

一个服务器Serve多个Gitbook

第一个gitbook可以用默认的命令

gitbook serve

这样会依照默认的端口和动态服务加载端口,等同于

gitbook --port 4000 --lrport 35729 serve

第二个服务换端口:

gitbook --port 4001 --lrport 35730 serve

其后的依次类推。

如果希望在80 或 443 端口访问文档,需要做nginx端口转发,如下:

server{
    listen 80;
    server_name doc.dukeyin.com;
    index index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/doc;

  location ~ /dukeyin/ {
    rewrite ^/dukeyin(/.*)$ $1 break;
    proxy_pass http://localhost:4000;
    proxy_set_header  Host $host;
    proxy_buffering   off;
  }
  location ~ /keepmins/ {
    rewrite ^/keepmins(/.*)$ $1 break;
    proxy_pass http://localhost:4001;
    proxy_set_header  Host $host;
    proxy_buffering   off;
  }
}

这样访问 /dukeyin/ 实际上提供的是服务器内部4000端口的内容。

访问/keepmins/ 实际上提供的是服务器内部4001端口的内容。

加了gitbook serve 再添加location即可。

导出的HTML链接不跳转

默认主题的锅

在目录中找到gitbook/theme.js

找到

if(m)for(n.handler&&

if(m)改为if(false)即可。

导出的 HTML 会加载liveload.js

这是因为使用了Serve时候的html,重新执行命令:

gitbook build 

此时生成的html就没有liveload了。

build或serve的时候报错

Error ENOENT no such file or directory stat ‘path/gitbook/xxx.xxx’

这个很奇葩,文件明明存在,但报错是不存在。

然后解决方法是找到GitBook的用户目录,通常windows在

C:\Users\USERNAME\.gitbook\versions\3.2.3\lib\output\website

找到copyPluginAssets.js这个文件,在112行修改为false即可。

    return fs.copyDir(
        assetsFolder,
        assetOutputFolder,
        {
            deleteFirst: false,
            overwrite: true,
            confirm: false  //112行 此处原为true
        }
    );

大概意思是覆盖文件不需要确认,以前是需要确认。


安装GitBook

保证系统中已经安装了node.js 12.18.1

node -v
npm -v

执行:

npm install -g gitbook-cli

常用GitBook命令

gitbook init
//初始化所在目录为书,会创建两个md文件,SUMMARY是目录,README是封面

gitbook build
//将写好的书打包成html

gitbook serve
//在本地建立gitbook服务,4000端口输出本书

引用关闭,但你能发布评论.

评论

标注 * 的为必填项。