Node NPM GitBook

news/2024/7/19 14:39:03 标签: node, npm, js, gitbook, cnpm

这里写自定义目录标题

  • NPM
    • 安装模块
    • 删除模块
    • 升级模块
    • 清理模块
    • 设置淘宝镜像
    • 设置代理
    • 问题 / 报错
      • phantomjs 这个 npm 包已经废弃, 不再使用了
  • GitBook
    • 设置 PDF 输出格式
    • GitBook 插件
      • GitBook 插件资源
      • 使用 GitBook 插件
      • 开发插件
      • 常用插件
      • 其它插件
    • 安装 GitBook
    • 使用 GitBook
      • 初始化电子书目录
      • 小试 GitBook 目录结构
    • GitBook 命令
    • 开多个 GitBook 服务
    • 版本管理

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 包已经废弃, 不再使用了

根据 npm phantomjs 包官网所述:

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
    }
  }
}
VariableDescription
pdf.pageNumbers是否添加页码, 默认是 true
pdf.fontSize字体大小, 默认是 12
pdf.fontFamily字体, 默认字体是 Arial)
pdf.paperSizePaper size, options are 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'legal', 'letter' (default is a4)
pdf.margin.topTop margin (default is 56)
pdf.margin.bottomBottom margin (default is 56)
pdf.margin.rightRight margin (default is 62)
pdf.margin.leftLeft margin (default is 62)

GitBook 插件

GitBook 插件资源

官网: https://plugins.gitbook.com

在里面可以搜索各种 GitBook 插件。

使用 GitBook 插件

这里使用 GitBook 的 mermaid 插件举例。

  1. 获知相关插件

因为我要画一个流程图, 从网上查询可知我需要一个 mermaid 插件, 搜索到其官网: https://plugins.gitbook.com/plugin/mermaid

  1. 在 GitBook 目录下新建一个配置文件 book.json:
{
    "plugins": ["mermaid"]
}
  1. 安装 mermaid 插件

根据上面的文档, 首先要安装:

npm install gitbook-plugin-mermaid

或者等待上面 book.json 编辑完成后, 使用自动安装命令(推荐):

gitbook install
  1. 安装 calibre

由于我们需要生成 pdf 文件, 所以非常需要这个软件, 按照其 官网方法 进行安装:

sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
  1. 在 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, 有添加。

  1. 首先安装 Node.js

安装 Node.js 完成后, 再升级最新版的 npm:

npm i npm@latest -g
  1. 安装 GitBook 命令行
npm install gitbook-cli -g
  1. 初始化 GitBook
gitbook --version

这个命令会安装最新版本的 GitBook, 如果遇到错误:

Error: Cannot find module 'config-chain'

安装该模块即可:

npm install -g config-chain
  1. 安装模块 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.mdSUMMARY.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 … 啦!


http://www.niftyadmin.cn/n/1620485.html

相关文章

简易集成websocket技术实现消息推送

Websocket 简介 首先介绍下WebSocket&#xff0c;它是一种网络通信技术&#xff0c;该技术最大的特点就是&#xff0c;服务器端可以主动往客户端发送消息&#xff1b;当然&#xff0c;客户端也可以主动往服务器发送消息&#xff0c;实现两端的消息通信&#xff0c;属于网络推…

flex graphiclar symbol的不同比例尺切换

private var cityGraL:GraphicsLayer;//标记城市 maxScale50000 private var siteGraL:GraphicsLayer;//标记站点 minScale50000

浏览器输入URL之后,HTTP请求返回的完整过程

1、输入url&#xff0c;按下回车时&#xff0c;先做一个redirect&#xff08;重定向&#xff09;&#xff0c;因为浏览器可能记录本机的地址已经永久跳转成新的地址&#xff0c;所以一开始浏览器就先要判断下需不需要重定向&#xff0c;以及重定向到哪里&#xff1b; 2、然后第…

pdf.js 库的使用

这里写自定义目录标题1. pdf.js 库的使用1.1. 什么是 pdf.js1.2. 在网页上显示 pdf 文件(使用 pdf.js)1.2.1. 下载1.2.2. 网页上显示 pdf 文件1.2.2.1. 传入参数(不推荐)1.2.2.2. 修改默认文件1.3. 遇到的问题1.3.1. 问题: file origin does not match viewer1.3.2. 问题: 获取…

linux img文件压缩及解压

2.6内核中的initrd.img采用cpio压缩&#xff0c;不再是2.4内核使用的ext2格式&#xff0c;无法使用mount -o loop 挂载。需要使用gunzip解压缩&#xff0c;然后再使用cpio解包cp /boot/initrd-***.img initrd.img.gzgunzip initrd.img.gzmkdir initrdmv initrd.img initrdcd in…

简单介绍session,cookie,token以及区别

Cookie简介 ①.是由服务器发给客户端的特殊信息&#xff0c;以文本的形式存放在客户端 ②.客户端再次请求的时候,会把Cookie回发给服务器 ③.服务器接收到后,会解析Cookie生成与客户端相对应的内容 Cookie的设置与发送过程分以下四步:(cookie的实现方式) 客户端发送一个http请…

网络游戏技术

这里写自定义目录标题1. 网络游戏技术1.1. 网络游戏专业术语中英文对照版1.2. 网关服务器1.3. 贴图、纹理、材质的区别是什么1.4. shader 简介1.5. 什么是 Unity Ads1. 网络游戏技术 1.1. 网络游戏专业术语中英文对照版 http://www.wikiwand.com/zh-cn/%E9%9B%BB%E5%AD%90%E9…

当远程桌面到Windows终端服务器,出现终端服务器超出了最大允许连接数,怎么办...

如果是老版本的MSTSC则使用 MSTSC /console /v:ip如果是新版本 MSTSC /admin /v:ip