Wed, 04 May 2016 16:53:35 +0000

npm

$ npm install <packageName> --force # 强制安装
$ npm update <packageName> # 更新
$ npm install -g # 全局安装
$ npm help <command> # 可查看某条命令的详细帮助
$ npm ls <packageName> # 查看特定package的信息
$ npm info <packageName> # 输出的信息非常详尽,包括作者、版本、依赖等。
$ npm search <packageName> # 搜索

使用 npm shrinkwrap 来管理项目依赖

作用:可以让 node_modules 里面文件的依赖关系就按锁那样去依赖,哪个包里面版本是什么,就装对应的版本。执行命令将产生 npm-shrinkwrap.json 文件,与 Ruby 的 Gemfile 类似。

目的:npm 2 与 npm 3 安装同一个包结果不太一样,npm 3 会尽量平铺(官方说法是为了解决 windows 包目录太深的问题,然后我就好奇为啥用 windows 开发 node 相关的应用了),而 npm 2 包的依赖是按照层级关系去处理的。

当然我们可以用 npm dedupe 从

a
+-- b <-- depends on c@1.0.x
|   `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
    `-- c@1.0.10

变成

a
+-- b
+-- d
`-- c@1.0.10

shrinkwrap 命令:

$ npm shrinkwrap # 可以锁住安装的包,安装的依赖目录。

.npmrc

为了管理 npm config。

npm run scripts

为了方便统一用 npm 运行。

nvm

使用 nvm use 如果当前目录下有 .nvmrc 文件,将改变当前的 shell 使用的 node 版本。

.nvmrc 内容如:

4.2.6

在 .zshrc 或 .bashrc 文件里面可以写一段 shell 命令,跳转到某个目录下的时候,可以顺便切换当前目录下的 node 版本。.rvmrc 是可以自动做到切换目录就更改了 rails 的版本,但 .nvmrc 做不到,所以以下为 hack 的内容:

# nvm: 管理 node 版本
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
# Calling nvm use automatically in a directory with a .nvmrc file
autoload -U add-zsh-hook
load-nvmrc() {
  if [[ -f .nvmrc && -r .nvmrc ]]; then
    nvm use
  fi
}
add-zsh-hook chpwd load-nvmrc # When using cd
load-nvmrc # when using command-d which is opening a new window

References



blog comments powered by Disqus