这里写自定义目录标题
NPM
更详细: https://www.runoob.com/nodejs/nodejs-npm.html
安装模块
npm install xxx 利用 npm 安装 xxx 模块到当前命令行所在目录;
npm install -g xxx 利用 npm 安装全局模块 xxx;
本地安装时将模块写入 package.json 中:
npm install xxx 安装但不写入 package.json;
npm install xxx –save 安装并写入 package.json 的 "dependencies" 中;
npm install xxx –save-dev 安装并写入 package.json 的 "devDependencies" 中。
删除模块
npm uninstall xxx 删除 xxx 模块
npm uninstall -g xxx 删除全局模块 xxx
升级模块
推荐使用升级插件:
$ npm install -g npm-check-updates
// 或者
$ cnpm install -g npm-check-updates
ncu 是 npm-check-updates 的缩写命令。
可以看到有好几个包要更新
$ ncu -a # 更新
$ ncu # 查看更新
npm 自带的 npm update 和升级插件 npm-check-updates 有什么区别呢
npm update, 只能按照 package.js 中标注的版本号进行更新, 每次都要改动 package.js 中的版本号实在太麻烦。
而升级插件会自动帮你更改 package.js 里的版本号, 简单方便。
清理模块
npm 清除未被使用的模块命令:
npm prune
设置淘宝镜像
由于网速问题, 我们需要设置一个国内镜像, 目前好像就淘宝一家了, 其它全关了。
http://npm.taobao.org 和 http://registry.npm.taobao.org 将在 2022.06.30 号正式下线和停止 DNS 解析。
域名切换规则:
- http://npm.taobao.org => http://npmmirror.com
- http://registry.npm.taobao.org => http://registry.npmmirror.com
# 切换为淘宝镜像命令
$ npm config set registry http://registry.npmmirror.com
# 验证是否设置成功
$ npm config get registry
# 删除 / 还原镜像
$ npm config del registry
npm_84">cnpm
淘宝推荐使用他们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
$ npm install -g cnpm --registry=https://registry.npmmirror.com
或者你直接通过添加 npm
参数 alias
一个新命令:
alias cnpm="npm --registry=https://registry.npmmirror.com \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npmmirror.com/mirrors/node \
--userconfig=$HOME/.cnpmrc"
# Or alias it in .bashrc or .zshrc
$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npmmirror.com \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npmmirror.com/mirrors/node \
--userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
- 安装模块
$ cnpm install [name]
- 同步模块
直接通过 sync
命令马上同步一个模块, 只有 cnpm
命令行才有此功能:
$ cnpm sync express
当然, 你可以直接通过 web 方式来同步: /sync/express
$ open https://npmmirror.com/sync/express
- 其它命令
支持 npm
除了 publish
之外的所有命令, 如:
$ cnpm info express
设置代理
设置代理:
npm config set proxy http://server:port
npm config set https-proxy http://server:port
# 如果代理需要认证的话可以这样来设置:
npm config set proxy http://username:password@server:port
npm config set https-proxy http://username:pawword@server:port
查看代理设置:
npm config list
清除 npm 的代理:
npm config delete proxy
npm config delete https-proxy
问题 / 报错
js__npm___163">phantomjs 这个 npm 包已经废弃, 不再使用了
Package renamed to phantomjs-prebuilt. Please update 'phantomjs' package references to 'phantomjs-prebuilt'
不知道从哪里修改包的引用, 所以干脆就到 phantomjs 官网 去下一个对应当前操作系统的版本, 并且添加到 PATH 中即可, 下次其它的软件就不会自动去下载并编译了。
GitBook
官方文档: https://toolchain.gitbook.com/
设置 PDF 输出格式
book.json
{
"gitbook": "2.x.x",
"title": "Go 语言圣经",
"description": "<The Go Programming Language > 中文版",
"language": "zh",
"structure": {
"readme": "preface.md"
},
"pluginsConfig": {
"fontSettings": {
"theme": "white",
"family": "msyh",
"size": 2
},
"plugins": [
"yahei",
"katex",
"-search"
]
},
"pdf": {
"pageNumbers": true,
"fontFamily": "Arial",
"fontSize": 12,
"paperSize": "a4",
"margin": {
"right": 62,
"left": 62,
"top": 56,
"bottom": 56
}
}
}
Variable | Description |
---|---|
pdf.pageNumbers | 是否添加页码, 默认是 true |
pdf.fontSize | 字体大小, 默认是 12 |
pdf.fontFamily | 字体, 默认字体是 Arial ) |
pdf.paperSize | Paper size, options are 'a0' , 'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6' , 'b0' , 'b1' , 'b2' , 'b3' , 'b4' , 'b5' , 'b6' , 'legal' , 'letter' (default is a4 ) |
pdf.margin.top | Top margin (default is 56 ) |
pdf.margin.bottom | Bottom margin (default is 56 ) |
pdf.margin.right | Right margin (default is 62 ) |
pdf.margin.left | Left margin (default is 62 ) |
GitBook 插件
GitBook 插件资源
官网: https://plugins.gitbook.com
在里面可以搜索各种 GitBook 插件。
使用 GitBook 插件
这里使用 GitBook 的 mermaid 插件举例。
- 获知相关插件
因为我要画一个流程图, 从网上查询可知我需要一个 mermaid 插件, 搜索到其官网: https://plugins.gitbook.com/plugin/mermaid
- 在 GitBook 目录下新建一个配置文件
book.json
:
{
"plugins": ["mermaid"]
}
- 安装 mermaid 插件
根据上面的文档, 首先要安装:
npm install gitbook-plugin-mermaid
或者等待上面 book.json
编辑完成后, 使用自动安装命令(推荐):
gitbook install
- 安装 calibre
由于我们需要生成 pdf 文件, 所以非常需要这个软件, 按照其 官网方法 进行安装:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
- 在 markdown 文档中使用 mermaid
{% mermaid %}
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
{% endmermaid %}
需要注意的是, 使用 gitbook-editor 实时浏览是不会加载插件的, 也就是说不能即时看到 mermaid 的效果, 需要 gitbook serve
命令来查看, 或者直接生成, 才能看到 mermaid 的效果。
可能用到的命令:
gitbook serve --lrport 35288 --port 4001
gitbook pdf ./ ./mybook.pdf
开发插件
最好先查看别人的插件是怎么做的, 然后再看 官方文档。
常用插件
- 流程图插件 plantuml
- 流程图插件 mermaid
其它插件
插件名 | 作用 |
---|---|
chart | 使用 C3.js 图表。 |
latex-codecogs | 使用数学方程式。 |
mermaid | 使用流程图。 |
include-codeblock | 通过引用文件插入代码。 |
styles-sass | 使用 SASS 替换 CSS。 |
styles-less | 使用 LESS 替换 CSS。 |
fontsettings | 默认的字体、字号、颜色设置插件。 |
prism | 基于 Prism 的代码高亮 |
ace | 插入代码高亮编辑器。 |
highlight | 默认的代码高亮插件, 通常会使用 prism 来替换。 |
mcqx | 使用选择题。 |
fbqx | 使用填空题。 |
spoiler | 隐藏答案, 当鼠标划过时才显示。 |
search | 默认搜索插件。 |
anchor-navigation | 锚点导航。 |
book-summary-scroll-position-saver | 自动保存左侧目录区域导航条的位置。 |
atoc | 插入 TOC 目录。 |
redirect | 页面跳转。 |
expandable-chapters | 收起或展开章节目录中的父节点。 |
sectionx | 分离各个段落, 并提供一个展开收起的按钮。 |
tbfed-pagefooter | 自定义页脚, 显示版权和最后修订时间。 |
editlink | 内容顶部显示 “编辑本页” 链接。 |
ad | 在每个页面顶部和底部添加广告或任何自定义内容。 |
splitter | 在左侧目录和右侧内容之间添加一个可以拖拽的栏, 用来调整两边的宽度。 |
image-captions | 抓取内容中图片的 alt 或 title 属性, 在图片下面显示标题。 |
baidu | 使用百度统计。 |
ga | 添加 Google 统计代码。 |
sitemap | 生成站点地图。 |
github-buttons | 显示 github 仓库的 star 和 fork 按钮。 |
github | 在右上角显示 github 仓库的图标链接。 |
anchors | 标题带有 github 样式的锚点。 |
disqus | 添加 disqus 评论插件。 |
duoshuo | 使用多说评论。 |
youtubex | 插入 YouTube 视频。 |
sharing | 默认的分享插件。 |
jsfiddle | 插入 JSFiddle 组件。 |
jsbin | 插入 JSBin 组件。 |
安装 GitBook
参考自: https://toolchain.gitbook.com/setup.html, 有添加。
- 首先安装 Node.js
npm i npm@latest -g
- 安装 GitBook 命令行
npm install gitbook-cli -g
- 初始化 GitBook
gitbook --version
这个命令会安装最新版本的 GitBook, 如果遇到错误:
Error: Cannot find module 'config-chain'
安装该模块即可:
npm install -g config-chain
- 安装模块 calibre-ebook(可选)
我们可能会用到 GitBook 转换成电子书的功能, 所以需要安装模块 calibre-ebook:
Binary install:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"
或者
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
如果没有安装模块 calibre-ebook, 会报错误:
InstallRequiredError: "ebook-convert" is not installed
使用 GitBook
初始化电子书目录
创建一个电子书的文件夹, 进入此文件夹:
$ gitbook init
执行完后, 你会看到多了两个文件—— README.md
和 SUMMARY.md
, 它们的作用如下:
README.md —— 书籍的介绍写在这个文件里
SUMMARY.md —— 书籍的目录结构在这里配置
小试 GitBook 目录结构
编辑 SUMMARY.md 文件, 内容修改为:
# 目录
* [前言](README.md)
* [第一章](Chapter1/README.md)
* [第 1 节: 衣](Chapter1 / 衣. md)
* [第 2 节: 食](Chapter1 / 食. md)
* [第 3 节: 住](Chapter1 / 住. md)
* [第 4 节: 行](Chapter1 / 行. md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)
然后我们回到命令行, 在 mybook 文件夹中再次执行 gitbook init
命令。GitBook 会查找 SUMMARY.md
文件中描述的目录和文件, 如果没有则会将其创建。
GitBook 命令
- 构建书籍 (默认将生成的静态网站输出到
_book
目录):$ gitbook build [书籍路径] [输出路径]
- 显示网页:
$ gitbook serve --port 2333
- 生成 PDF 格式的电子书:
$ gitbook pdf ./ ./mybook.pdf
- 生成 epub 格式的电子书:
$ gitbook epub ./ ./mybook.epub
- 生成 mobi 格式的电子书:
$ gitbook mobi ./ ./mybook.mobi
gitbook init // 初始化目录文件
gitbook help // 列出 gitbook 所有的命令
gitbook --help // 输出 gitbook-cli 的帮助信息
gitbook build // 生成静态网页
gitbook serve // 生成静态网页并运行服务器
gitbook build --gitbook=2.0.1 // 生成时指定 gitbook 的版本, 本地没有会先下载
gitbook ls // 列出本地所有的 gitbook 版本
gitbook ls-remote // 列出远程可用的 gitbook 版本
gitbook fetch 标签 / 版本号 // 安装对应的 gitbook 版本
gitbook update // 更新到 gitbook 的最新版本
gitbook uninstall 2.0.1 // 卸载对应的 gitbook 版本
gitbook build --log=debug // 指定 log 的级别
gitbook builid --debug // 输出错误信息
开多个 GitBook 服务
gitbook 启动的 web 服务默认监听 4000 端口, 而重启监控进程默认监听 35729 端口。一般这样可以启动一个电子书 web 服务:
gitbook serve /somepath/your_docuemtn_dir/
本地就可以这样来访问: http://localhost:4000
如果要启动另一部电子书服务的话, 就需要同时修改 web 端口和监控进程端口, 类似这样:
gitbook serve --lrport 35288 --port 4001 /path2/your_another_doc_dir/
否则就会产生端口已被占用的情况。
版本管理
除此之外, 别忘了还可以用 Git 做版本管理呀! 在 mybook
目录下执行 git init
初始化仓库, 执行 git remote add
添加远程仓库 (你得先在远端建好)。接着就可以愉快地 commit
, push
, pull …
啦!