Centos7下搭建gitbook环境踩坑记录


1.安装npm

yum -y install npm

2.配置npm仓

npm config set registry https://mirrors.tencent.com/npm/

3.安装gitbook-cli和gitbook

npm install gitbook-cli -g

npm install gitbook -g

查看是否安装成功:gitbook -V

image

4.编译book

进入到book工程根目录,执行:gitbook build

5.启动服务gitbook serve

工程目录下执行:gitbook serve ./ --port=80

其中,--port指定端口,默认是4000

6.问题汇总

1.安装gitbook-cli时,报错TypeError: cb.apply is not a function,报错截图如下:
image
原因:graceful-fs兼容问题
解决办法:进入到报错提示里的目录,我这边是进入到/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/,执行npm install graceful-fs@latest --save,安装最新的graceful-fs

2.执行build时报错,TypeError: Cannot read property "pipes" of undefined,报错截图如下:
image
原因:graceful-fs兼容问题
解决办法:同问题1,将版本指定到4.2.0(应该是某些版本有问题而已)npm install graceful-fs@4.2.0 --save

强烈建议:文件名不要有中文,尽量不要用特殊字符,避免踩坑

7.初始化脚本
#!/bin/bash

# 找不到则安装
if ! which gitbook > /dev/null 2>&1; then
    echo "start init."
    # 安装npm
    yum  -y  install  npm
    # 配置npm源
    npm config set registry https://mirrors.tencent.com/npm/
    # 安装gitbook-cli和gitbook
    npm install gitbook-cli -g
    npm install gitbook -g
    # 解决版本兼容
    if which gitbook > /dev/null 2>&1; then
        # npm依赖包安装路径
        node_modules_path=$(npm root -g)
        cd $node_modules_path/gitbook-cli/node_modules/npm/node_modules/
        npm install graceful-fs@4.2.0 --save
        echo "init success."
    fi
fi