Gitbook部署之nodejs踩坑

title: Gitbook部署之nodejs踩坑
date: 2020-11-06 16:34:30

summary: Gitbook部署和NVM的使用、hexo失效

Gitbook部署之nodejs踩坑

一、node.js中某版本对Gitbook支持好

(其他版本,很多都是坑)

v12.16.3版本支持很好

D:\___MyGitbook\DOS>node -v
v12.16.3
D:\___MyGitbook\DOS>npm -v
6.14.4

v14.3.0版本不OK

二、第1个坑,安装Gitbook的方式

(1)错误的安装Gitbook的方式

C:\Users\MaxWell> npm install gitbook -g
npm WARN deprecated graceful-fs@3.0.5: please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated nunjucks@2.2.0: potential XSS vulnerability in autoescape mode, and with escape filter was fixed in v2.4.3
省略省略省略省略
npm WARN deprecated cryptiles@0.2.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
C:\Users\MaxWell\AppData\Roaming\npm\gitbook -> C:\Users\MaxWell\AppData\Roaming\npm\node_modules\gitbook\bin\gitbook.jsnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^0.3.8 (node_modules\gitbook\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@0.3.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ gitbook@2.6.9
added 405 packages from 569 contributors in 118.103s

C:\Users\MaxWell>gitbook -v
You need to install "gitbook-cli" to have access to the gitbook command anywhere on your system.
If you've installed this package globally, you need to uninstall it.
>> Run "npm uninstall -g gitbook" then "npm install -g gitbook-cli"

(2)正确的安装Gitbook的方式

//记得在装之前要先卸载
C:\Users\MaxWell>npm uninstall -g gitbook

npm WARN deprecated fsevents@0.3.8: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^0.3.8 (node_modules\gitbook\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@0.3.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

removed 405 packages in 30.716s


//下面是安装命令
C:\Users\MaxWell>npm install -g gitbook-cli


C:\Users\MaxWell\AppData\Roaming\npm\gitbook -> C:\Users\MaxWell\AppData\Roaming\npm\node_modules\gitbook-cli\bin\gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 72.32s

三、第2个坑,解决安装gitbook时卡顿

在Installing GitBook 3.2.3

我开了VPN还显示

C:\Users\MaxWell>npm install -g gitbook-cli
C:\Users\MaxWell\AppData\Roaming\npm\gitbook -> C:\Users\MaxWell\AppData\Roaming\npm\node_modules\gitbook-cli\bin\gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 72.32s

C:\Users\MaxWell>gitbook -v

C:\Users\MaxWell>gitbook --v

  error: unknown option `--v'


C:\Users\MaxWell>gitbook --version
CLI version: 2.3.2
Installing GitBook 3.2.3
^C终止批处理操作吗(Y/N)?
^C
C:\Users\MaxWell>

C:\Users\MaxWell>gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3

后面找教程
解决安装gitbook时卡顿在 Installing GitBook 3.2.3 的问题

安装gitbook时卡顿在 Installing GitBook 3.2.3 的问题链接

但是!!!最终,我等了几分钟,等到了

C:\Users\MaxWell>gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
gitbook@3.2.3 AppData\Local\Temp\tmp-7216C6tf0GurtYQJ\node_modules\gitbook
├── escape-string-regexp@1.0.5
├── destroy@1.0.4
├── escape-html@1.0.3
├── ignore@3.1.2
├── bash-color@0.0.4
├── gitbook-plugin-livereload@0.0.1
├省略省略省略省略
├── juice@2.0.0 (deep-extend@0.4.2, slick@1.12.2, batch@0.5.3, cssom@0.3.1, commander@2.9.0, cross-spawn-async@2.2.5, web-resource-inliner@2.0.0)
└── npm@3.9.2
GitBook version: 3.2.3

C:\Users\MaxWell>gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3

上面表示Gitbook安装成功了

(1)总结这个坑如何避免

1、用VPN,然后耐心等
2、用阿里镜像???(反正我不想用,直接用VPN)本种方式我没有测试过。

四、Gitbook初始化文件

(1)我的没有成功的现象长这样

D:\___MyGitbook\DOS>gitbook init
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md

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

这行出错了

TypeError [ERR_INVALID_ARG_TYPE]: 

(2)别人成功的情况

$ gitbook init                #初始化gitbook
warn: no summary file in this book
info: create README.md  
info: create SUMMARY.md
info: initialization is finished  #初始化成功

(3)查找资料:得知node.js版本的坑!!!(NVM牛皮)

原因

一开始执行gitbook init一直报上面这个错误,后来换了个版本就OK了

根据上面WARN可知系统里安装的node不支持gitbook,然后用nvm(Nodejs版本管理器)切换node版本

1、首先查看自己电脑的node的版本

D:\___MyGitbook\DOS>node -v
v14.3.0

2、寻找命令位置的语句

D:\___MyGitbook\DOS>where node
D:\___MySoftware\05.MyBlog\01.nodejs\01.nodejs\node.exe

D:\___MyGitbook\DOS>where tree
C:\WINDOWS\System32\tree.com

D:\___MyGitbook\DOS>where gitbook
C:\Users\MaxWell\AppData\Roaming\npm\gitbook
C:\Users\MaxWell\AppData\Roaming\npm\gitbook.cmd

毕竟,注意,我还有本地博客要使用node.js(也就是hexo)

五、卸载当前版本的node.js

1、用win+X+F去卸载
2、删除先前的安装文件夹
D:___MySoftware\05.MyBlog\01.nodejs\01.nodejs

3.检查您的%PATH%环境变量以确保没有引用Nodejs或npm存在。(没有检查到)

然后测试

D:\___MyGitbook\DOS>npm -v
'npm' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\___MyGitbook\DOS>node -v
'node' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\___MyGitbook\DOS>where node
信息: 用提供的模式无法找到文件。

六、安装NVM

NVM安装网站

1、NVM安装网站
2、实际链接
3、我还备份一份到我的图床中。

NVM常用命令

NVM常用命令

安照文章进行设置,一路安装。

打开新的cmd。测试
在新的命令窗口中输入nvm

C:\Users\MaxWell>nvm

Running version 1.1.7.

Usage:

  nvm arch                     : Show if node is running in 32 or 64 bit mode.
  nvm install <version> [arch] : The version can be a node.js version or "latest" for the latest stable version.
                                 Optionally specify whether to install the 32 or 64 bit version (defaults to system arch).
                                 Set [arch] to "all" to install 32 AND 64 bit versions.
                                 Add --insecure to the end of this command to bypass SSL validation of the remote download server.
  nvm list [available]         : List the node.js installations. Type "available" at the end to see what can be installed. Aliased as ls.
  nvm on                       : Enable node.js version management.
  nvm off                      : Disable node.js version management.
  nvm proxy [url]              : Set a proxy to use for downloads. Leave [url] blank to see the current proxy.
                                 Set [url] to "none" to remove the proxy.
  nvm node_mirror [url]        : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url.
  nvm npm_mirror [url]         : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url.
  nvm uninstall <version>      : The version must be a specific version.
  nvm use [version] [arch]     : Switch to use the specified version. Optionally specify 32/64bit architecture.
                                 nvm use <arch> will continue using the selected version, but switch to 32/64 bit mode.
  nvm root [path]              : Set the directory where nvm should store different versions of node.js.
                                 If <path> is not set, the current root will be displayed.
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.

七、测试NVM

C:\Users\MaxWell>nvm

Running version 1.1.7.

Usage:

 省略省略省略
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.



//目前还没有用NVM安装任何node版本????什么情况,后面就知道了
C:\Users\MaxWell>nvm ls

No installations recognized.


//用NVM安装最新的64位版本的node,主要是继续维持我的hexo能运转
C:\Users\MaxWell>nvm install latest 64
Downloading node.js version 15.0.1 (64-bit)...
Complete
Creating D:\___MySoftware\05.MyBlog\03.Nvm\03.Nvm\nvm\temp

Downloading npm version 7.0.3... Complete
Installing npm v7.0.3...

Installation complete. If you want to use this version, type

nvm use 15.0.1


C:\Users\MaxWell>npm -v
'npm' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\MaxWell>nvm which 15.0.1

Running version 1.1.7.

Usage:

  nvm arch                     : Show if node is running in 32 or 64 bit mode.
  nvm install <version> [arch] : The version can be a node.js version or "latest" for the latest stable version.
                                 Optionally specify whether to install the 32 or 64 bit version (defaults to system arch).
                                 Set [arch] to "all" to install 32 AND 64 bit versions.
                                 Add --insecure to the end of this command to bypass SSL validation of the remote download server.
  nvm list [available]         : List the node.js installations. Type "available" at the end to see what can be installed. Aliased as ls.
  nvm on                       : Enable node.js version management.
  nvm off                      : Disable node.js version management.
  nvm proxy [url]              : Set a proxy to use for downloads. Leave [url] blank to see the current proxy.
                                 Set [url] to "none" to remove the proxy.
  nvm node_mirror [url]        : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url.
  nvm npm_mirror [url]         : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url.
  nvm uninstall <version>      : The version must be a specific version.
  nvm use [version] [arch]     : Switch to use the specified version. Optionally specify 32/64bit architecture.
                                 nvm use <arch> will continue using the selected version, but switch to 32/64 bit mode.
  nvm root [path]              : Set the directory where nvm should store different versions of node.js.
                                 If <path> is not set, the current root will be displayed.
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.

八、NVM的安装列表——查看安装了哪些版本的node

C:\Users\MaxWell>nvm list

    15.0.1

C:\Users\MaxWell>nvm use 15.0.1
Now using node v15.0.1 (64-bit)

C:\Users\MaxWell>node -v
v15.0.1

C:\Users\MaxWell>npm -V
^C终止批处理操作吗(Y/N)?
^C^C终止批处理操作吗(Y/N)?
^C


C:\Users\MaxWell>npm -v
npm notice
npm notice New patch version of npm available! 7.0.3 -> 7.0.6
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.0.6
npm notice Run npm install -g npm@7.0.6 to update!
npm notice
7.0.3

十、坑爹,好像以前的npm装的都没有了(所以-先装NVM再装Nodejs)

D:\___MyGitbook\DOS>gitbook init
'gitbook' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\___MyGitbook\DOS>gitbook -v
'gitbook' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\___MyGitbook\DOS>gitbook -V
'gitbook' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\___MyGitbook\DOS>where gitbook
信息: 用提供的模式无法找到文件。

D:\___MyGitbook\DOS>

十一、以防万一,顺路安装一个似乎可以用gitbook的版本的node

C:\Users\MaxWell>npm -v
npm notice
npm notice New patch version of npm available! 7.0.3 -> 7.0.6
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.0.6
npm notice Run npm install -g npm@7.0.6 to update!
npm notice
7.0.3

C:\Users\MaxWell>nvm install v12.16.3
Downloading node.js version 12.16.3 (64-bit)...
Complete
Creating D:\___MySoftware\05.MyBlog\03.Nvm\03.Nvm\nvm\temp

Downloading npm version 6.14.4... Complete
Installing npm v6.14.4...

Installation complete. If you want to use this version, type

nvm use 12.16.3

C:\Users\MaxWell>
C:\Users\MaxWell>npm -v
7.0.3

C:\Users\MaxWell>nvm list

  * 15.0.1 (Currently using 64-bit executable)
    12.16.3

C:\Users\MaxWell>nvm use 12.16.3
Now using node v12.16.3 (64-bit)

C:\Users\MaxWell>

十二、用当前版本node v12.16.3 (64-bit)的npm安装gitbook

C:\Users\MaxWell>npm -v
6.14.4

C:\Users\MaxWell>npm -v
6.14.4

C:\Users\MaxWell>npm install gitbook -g
npm WARN deprecated graceful-fs@3.0.5: please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated nunjucks@2.2.0: potential XSS vulnerability in autoescape mode, and with escape filter was fixed in v2.4.3
npm WARN deprecated chokidar@1.0.6: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated request@2.51.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated fsevents@0.3.8: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated sprintf@0.1.5: The sprintf package is deprecated in favor of sprintf-js.
npm WARN deprecated datauri@0.2.1: Datauri 2.0 released. See more in https://github.com/data-uri/datauri/releases/tag/v2.0.0
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated hawk@1.1.1: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated sntp@0.2.4: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated cryptiles@0.2.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated hoek@0.9.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated boom@0.4.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
C:\Program Files\nodejs\gitbook -> C:\Program Files\nodejs\node_modules\gitbook\bin\gitbook.js
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^0.3.8 (node_modules\gitbook\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@0.3.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ gitbook@2.6.9
added 405 packages from 569 contributors in 79.58s
C:\Users\MaxWell>npm install -g gitbook-cli
C:\Program Files\nodejs\gitbook -> C:\Program Files\nodejs\node_modules\gitbook-cli\bin\gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 63.485s

C:\Users\MaxWell>gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3

十三、完美用低版本修复Gitbook的bug

D:\___MyGitbook\DOS>gitbook init
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished

D:\___MyGitbook\DOS>node -v
v12.16.3

D:\___MyGitbook\DOS>npm -v
6.14.4

D:\___MyGitbook\DOS>
上一篇:zsh: command not found: nvm 解决方案


下一篇:nvm node版本管理 npm不是内部或外部命令