Gitbook 作为在github社区中使用日益广泛的开源电子书格式,对于希望本地阅读的使用者来说,配置简单的gitbook环境并进行编译实现本地阅读是十分舒适的体验。本文将从在windows环境中进行gitbook的安装为例,将踩过的坑进行分享。
当前的csdn、stackoverflow等社区中都有着一些gitbook安装的过程分享。我以一篇相对较新的文章作为了安装参考。
导出简书的文章生成gitbook上传到github通过xxx.github.io访问
但是似乎问题并没有那么简单,我的安装过程也不像文章所述一样顺利,而是出现了一些问题。
在输入这部分代码时,返回值并非是文中所述的
CLI version: 2.3.2
GitBook version: 3.2.3
而是出现
CLI version: 2.3.2
Installing GitBook 3.2.3
这说明gitbook并没有随着npm install gitbook-cli -g
的运行而安装还需要一个gitbook本身的安装过程才能完成,遗憾的是,这个过程反复报错,无法顺利完成gitbook的安装。
相关的错误信息:
TypeError: cb.apply is not a function
这显然不是简单的网络错误所致,而且我在此之前已经对npm的源进行了修改。
这个报错的代码出现在
C:\Users\Lowerce\AppData\Roaming\npm\node_modules\gitbook-cli\node_modules\graceful-fs
文件夹下的polyfills.js
文件中。
我以类似的错误信息作为关键字进行检索,在stackoverflow中找到了一些可能的解决方案。
我仔细阅读了各个不同时间发布的gitbook安装文章,决定参照一些版本信息更加详细的安装过程进行重试。(我开始考虑是版本问题的锅)
这次我选择的是nodejs的v10.21.0版本
node.js下载地址
安装完成后进行检视
C:\WINDOWS\system32>node -v
v10.21.0
C:\WINDOWS\system32>npm -v
6.14.4
开始安装过程
C:\WINDOWS\system32>npm install -g gitbook-cli
C:\Users\Lowerce\AppData\Roaming\npm\gitbook -> C:\Users\Lowerce\AppData\Roaming\npm\node_modules\gitbook-cli\bin\gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 30.136s
继续
C:\WINDOWS\system32>gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
gitbook@3.2.3 ..\..\Users\Lowerce\AppData\Local\Temp\tmp-151609GtNV1M6l9Hr\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
├── nunjucks-do@1.0.0
├── cp@0.2.0
├── graceful-fs@4.1.4
├── github-slugid@1.0.1
├── spawn-cmd@0.0.2
├── gitbook-plugin-fontsettings@2.0.0
├── open@0.0.5
├── is@3.3.0
├── direction@0.1.5
├── q@1.4.1
├── object-path@0.9.2
├── extend@3.0.2
├── json-schema-defaults@0.1.1
├── gitbook-plugin-search@2.2.1
├── jsonschema@1.1.0
├── crc@3.4.0
├── urijs@1.18.0
├── semver@5.1.0
├── front-matter@2.3.0
├── immutable@3.8.2
├── omit-keys@0.1.0 (isobject@0.2.0, array-difference@0.0.1)
├── error@7.0.2 (xtend@4.0.2, string-template@0.2.1)
├── dom-serializer@0.1.0 (domelementtype@1.1.3, entities@1.1.2)
├── tmp@0.0.28 (os-tmpdir@1.0.2)
├── npmi@2.0.1 (semver@4.3.6)
├── mkdirp@0.5.1 (minimist@0.0.8)
├── send@0.13.2 (range-parser@1.0.3, statuses@1.2.1, fresh@0.3.0, etag@1.7.0, ms@0.7.1, depd@1.1.2, debug@2.2.0, mime@1.3.4, http-errors@1.3.1, on-finished@2.3.0)
├── resolve@1.1.7
├── rmdir@1.2.0 (node.flow@1.2.3)
├── gitbook-plugin-theme-default@1.0.7
├── fresh-require@1.0.3 (is-require@0.0.1, shallow-copy@0.0.1, sleuth@0.1.1, astw@1.3.0, through2@0.6.5, acorn@0.9.0, escodegen@1.14.3)
├── js-yaml@3.14.0 (esprima@4.0.1, argparse@1.0.10)
├── tiny-lr@0.2.1 (parseurl@1.3.3, livereload-js@2.4.0, qs@5.1.0, debug@2.2.0, body-parser@1.14.2, faye-websocket@0.10.0)
├── cpr@1.1.1 (rimraf@2.4.5)
├── gitbook-plugin-lunr@1.2.0 (html-entities@1.2.0, lunr@0.5.12)
├── read-installed@4.0.3 (debuglog@1.0.1, util-extend@1.0.3, slide@1.1.6, readdir-scoped-modules@1.1.0, read-package-json@2.1.1)
├── gitbook-plugin-highlight@2.0.2 (highlight.js@9.2.0)
├── moment@2.13.0
├── gitbook-plugin-sharing@1.0.2 (lodash@3.10.1)
├── gitbook-asciidoc@1.2.2 (gitbook-html@1.3.3, asciidoctor.js@1.5.5-1, lodash@4.17.19)
├── i18n-t@1.0.1 (lodash@4.17.19)
├── gitbook-markdown@1.3.2 (kramed-text-renderer@0.2.1, gitbook-html@1.3.3, kramed@0.5.6, lodash@4.17.19)
├── npm@3.9.2
├── request@2.72.0 (tunnel-agent@0.4.3, aws-sign2@0.6.0, forever-agent@0.6.1, oauth-sign@0.8.2, caseless@0.11.0, is-typedarray@1.0.0, aws4@1.10.0, stringstream@0.0.6, isstream@0.1.2, json-stringify-safe@5.0.1, tough-cookie@2.2.2, qs@6.1.2, node-uuid@1.4.8, combined-stream@1.0.8, mime-types@2.1.27, bl@1.1.2, hawk@3.1.3, har-validator@2.0.6, http-signature@1.1.1, form-data@1.0.1)
├── chokidar@1.5.0 (async-each@1.0.3, path-is-absolute@1.0.1, inherits@2.0.4, glob-parent@2.0.0, is-glob@2.0.1, is-binary-path@1.0.1, anymatch@1.3.2, readdirp@2.2.1)
├── cheerio@0.20.0 (entities@1.1.2, css-select@1.2.0, lodash@4.17.19, htmlparser2@3.8.3, jsdom@7.2.2)
├── 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)
└── nunjucks@2.5.2 (asap@2.0.6, yargs@3.32.0, chokidar@1.7.0)
GitBook version: 3.2.3
大功告成!!!