nvm usage

Usage:
nvm --help 显示帮助信息
nvm --version 打印出安装的nvm版本
nvm install [-s] <version> 从源代码下载并安装 <version>, [-s]。 如果可用,使用 .nvmrc
--reinstall-packages-from=<version> 安装时,重新安装安装在 <node|iojs|node version number> 中的包
--lts 安装时,只选择 LTS(长期支持)版本
--lts=<LTS name> 安装时,仅从特定 LTS 行的版本中选择
--skip-default-packages 安装时,跳过默认包文件(如果存在)
--latest-npm 安装后,尝试升级到给定节点版本上的最新工作 npm
--no-progress 禁用任何下载的进度条
nvm uninstall <version> 卸载一个版本
nvm uninstall --lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)进行卸载。
nvm uninstall --lts=<LTS name> 使用提供的 LTS 行的自动别名(如果可用)进行卸载。
nvm use [--silent] <version> 修改 PATH 以使用 <version>。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm exec [--silent] <version> [<command>] 在 <version> 上运行 <command>。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm run [--silent] <version> [<args>] 在 <version> 上以 <args> 作为参数运行 `node`。 如果可用,使用 .nvmrc
--lts 使用自动 LTS(长期支持)别名“lts/*”(如果可用)。
--lts=<LTS name> 为提供的 LTS 行使用自动别名(如果可用)。
nvm current 显示当前激活的Node版本
nvm ls [<version>] 列出已安装的版本,匹配给定的 <version>(如果提供)
--no-colors 抑制彩色输出
--no-alias 抑制 `nvm alias` 输出
nvm ls-remote [<version>] 列出可用于安装的远程版本,匹配给定的 <version>(如果提供)
--lts 列出时,只显示 LTS(长期支持)版本
--lts=<LTS name> 列出时,仅显示特定 LTS 行的版本
--no-colors 抑制彩色输出
nvm version <version> 将给定的描述解析为单个本地版本
nvm version-remote <version> 将给定的描述解析为单个远程版本
--lts 列出时,仅选择 LTS(长期支持)版本
--lts=<LTS name> 列出时,仅从特定 LTS 行的版本中选择
nvm deactivate 撤消 `nvm` 对当前 shell 的影响
nvm alias [<pattern>] 显示所有以 <pattern> 开头的别名
--no-colors 抑制彩色输出
nvm alias <name> <version> 设置一个名为 <name> 的别名指向 <version>
nvm unalias <name> 删除名为 <name> 的别名
nvm install-latest-npm 尝试在当前节点版本上升级到最新的工作“npm”
nvm reinstall-packages <version> 将 <version> 中包含的全局 `npm` 包重新安装到当前版本
nvm unload 从 shell 中卸载 `nvm`
nvm which [current | <version>] 显示已安装节点版本的路径。 如果可用,使用 .nvmrc
nvm cache dir 显示 nvm 缓存目录的路径
nvm cache clear 为 nvm 清空缓存目录

Example:
nvm install 8.0.0 安装特定版本号
nvm use 8.0 使用最新的 8.0.x 版本
nvm run 6.10.3 app.js 使用节点 6.10.3 运行 app.js
nvm exec 4.8.3 node app.js 使用指向节点 4.8.3 的路径运行 `node app.js`
nvm alias default 8.1.0 在 shell 上设置默认节点版本
nvm alias default node 始终默认为 shell 上的最新可用节点版本
nvm install node --reinstall-packages-from=node 安装最新版本,并从当前版本中重新安装包和全局模块(升级到最新版本并保留已安装的包和全局模块)

Note:
移除、删除或卸载 nvm - 只需移除 `$NVM_DIR` 文件夹(通常为 `~/.nvm`)
Read more

Git基础

创建存储库

# 创建一个新的本地存储库
$ git init [项目名称]

# 克隆存储库
$ git clone <git 仓库 url 地址>

# 将存储库克隆到指定目录
$ git clone <git 仓库 url 地址> <我的文件夹>
Read more

homebrew依赖关系

Basics:
brew ls 列出所有已安装的包
brew leaves 列出不依赖于另一个已安装包的已安装包
brew deps --installed --tree 显示所有包的依赖关系
brew deps <package> 显示<package>的依赖包
brew uses <package> --installed 显示<package>被哪些包依赖
brew info <package> 显示<package的信息

brew uninstall <package> 卸载<package>
brew autoremove 移除所有未使用的依赖项

brew-graph:
brew tap martido/homebrew-graph 安装brew-graph
brew install graphviz 安装graphviz
brew graph --installed | dot -Tpng -ograph.png dot格式
brew graph --installed | fdp -Tpng -ograph.png fdp格式

--highlight-leaves
--reduce

Regular Expressions 正则表达式语法

普通字符

什么叫普通字符?

当我们写a的时候,我们指的就是a;当我们写的时候,我们指的就是

'hello 😀 regex'.match(/😀/);
// ["😀", index: 6, input: "hello 😀 regex", groups: undefined]
Read more

Git飞行规则(Flight Rules)

编辑提交(editting commits)

我刚才提交了什么?

如果你用 git commit -a 提交了一次变化(changes),而你又不确定到底这次提交了哪些内容。 你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit):

(main)$ git show

或者

$ git log -n1 -p
Read more

css3 flex弹性布局摘要

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性

设为Flex布局以后,子元素的floatclearvertical-align属性将失效

.box{
display: -webkit-flex; /* -webkit */
display: flex;
flex-direction: row | row-reverse | column | column-reverse; /* row */
flex-wrap: nowrap | wrap | wrap-reverse; /* nowrap */
flex-flow: <flex-direction> || <flex-wrap>; /* row nowrap */
justify-content: flex-start | flex-end | center | space-between | space-around; /* flex-start */
align-items: flex-start | flex-end | center | baseline | stretch; /* stretch */
align-content: flex-start | flex-end | center | space-between | space-around | stretch; /* stretch */
}

.item {
order: <integer>; /* 0 */
flex-grow: <number>; /* 0 */
flex-shrink: <number>; /* 1 */
flex-basis: <length> | auto; /* auto */
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]; /* 0 1 auto */
align-self: auto | flex-start | flex-end | center | baseline | stretch; /* auto */
}
Read more

Git 忽略文件不加入版本控制

.gitignore

# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
tmp/* # 忽略tmp文件夹所有文件,因为git不会加入空目录

其它过滤条件

  • : 代表任意的一个字符
  • : 代表任意数目的字符
  • {!ab} : 必须不是此类型
  • {ab,bb,cx} : 代表ab,bb,cx中任一类型即可
  • [abc] : 代表a,b,c中任一字符即可
  • [ ^abc] : 代表必须不是a,b,c中任一字符

.gitignoreglobal

在用户目录下创建 ~/.gitignoreglobal 文件,
需要执行 git config --global core.excludesfile ~/.gitignoreglobal 来使得它生效。

忽略本地的文件控制,不影响全局

.git/info/exclude 这里设置的是你自己本地需要排除的文件,他不会影响到其他人,也不会提交到版本库中去。

去除已经提交文件的版本控制(公共)

  1. rm -rf PATH
  2. git rm -r --cached PATH
  3. 修改.gitignore,添加忽略文件
  4. git add -A
  5. git push

忽略已经提交到版本库的文件(本地)

git update-index --assume-unchanged PATH # 忽略跟踪
git update-index --no-assume-unchanged PATH #恢复跟踪

提交空的目录树

需要提交一个空的 log 目录时,在里面放置一个空的.gitignore