Nodejs 我想用cnpm但是懒得打c,所以弄了这个小脚本

Nodejs 我想用cnpm但是懒得打c,所以弄了这个小脚本

几天前装了cnpm,但是没用,打npm已经打习惯了。昨天Node Party 杭州上 死马现场展示cnpm,被那个速度吓到了。

但是,我还是不想输入cnpm

  • npm已经打习惯了
  • npmcnpm少一个字母,更省力
  • publish有关的命令要用npm,其他用cnpm,会增加我的记忆负担,我年纪大了,记性很差

然后,我只是把cnpm当作高速版的npm来用,没有用到私有仓库的功能,所以,就有了这个:

#!/bin/sh

case $1 in docs | faq | find | home | i | info | install | isntall | issues | rb | rebuild | repo | s | se | search | v | view) cnpm “$@” ;; *) /usr/bin/npm “$@” ;; esac

基本的思路是将那些依赖网速的命令交给cnpm去处理,其他的交给npm.

将以上内容保存为npm,加上可执行权限,然后放你的~/bin/usr/local/bin/之类的地方就行。


7 回复

Nodejs 我想用cnpm但是懒得打c,所以弄了这个小脚本

几天前装了cnpm,但是没用,打npm已经打习惯了。昨天Node Party 杭州上 死马现场展示cnpm,被那个速度吓到了。

但是,我还是不想输入cnpm

  • npm已经打习惯了
  • npmcnpm少一个字母,更省力
  • publish有关的命令要用npm,其他用cnpm,会增加我的记忆负担,我年纪大了,记性很差

然后,我只是把cnpm当作高速版的npm来用,没有用到私有仓库的功能,所以,就有了这个脚本:

#!/bin/sh

# 定义需要使用 cnpm 的命令列表
case $1 in 
  docs | faq | find | home | i | info | install | isntall | issues | rb | rebuild | repo | s | se | search | v | view)
    # 将这些命令传递给 cnpm 处理
    cnpm "$@"
    ;;
  *)
    # 其他命令传递给 npm 处理
    /usr/bin/npm "$@"
    ;;
esac

基本思路

这个脚本的基本思路是将那些依赖网速的命令(如 installsearch 等)交给 cnpm 去处理,而其他的命令则交给标准的 npm 处理。这样可以让你继续使用习惯的 npm 命令,同时还能享受到 cnpm 的高速下载功能。

使用方法

  1. 将上述脚本保存为文件,例如 npm
  2. 给该文件添加可执行权限:
    chmod +x npm
    
  3. 将该文件放到你的 PATH 环境变量中的某个目录里,例如 ~/bin/usr/local/bin
    mv npm ~/bin/
    

这样配置后,当你运行 npm install 时,实际上是运行了一个脚本,它会根据命令的具体内容决定是调用 npm 还是 cnpm。对于依赖网络的命令,它会自动调用 cnpm,从而提高下载速度。

希望这个脚本能帮助你简化日常开发工作,提升效率!


哈哈,这个不错,收藏

cnpm不是提供了源地址么 替换掉npm的源就好了嘛

顺便赞一下 cnpm

替换了源之后,publish就出问题了

挖个坟。。 如果要频繁publish的话 用nrm吧 切换起来方便点

# .zshrc
export taobao="--registry=https://registry.npm.taobao.org"

npm install $taobao

根据你的描述,用户希望使用 cnpm 但又不愿意输入 cnpm 这个较长的命令。他提供了一个简单的 shell 脚本来实现这个需求,该脚本将一些依赖网络速度的 npm 命令重定向到 cnpm,而其他命令则保持不变。

以下是这个 shell 脚本的详细说明:

#!/bin/sh

case $1 in 
  docs | faq | find | home | i | info | install | isntall | issues | rb | rebuild | repo | s | se | search | v | view) cnpm "$@" ;;
  *) /usr/bin/npm "$@" ;;
esac

解释:

  • #!/bin/sh: 指定这个文件是以 sh(Bourne Shell)作为解释器运行。
  • $1: 表示传入的第一个参数,也就是用户想要执行的 npm 命令。
  • case ... esac: 这是一个条件分支语句,用于匹配不同的命令。
  • cnpm "$@": 当匹配到某些特定的命令时,执行 cnpm 并传递所有参数。
  • /usr/bin/npm "$@": 其他命令则默认使用 /usr/bin/npm

使用方法:

  1. 将上述脚本保存为 npm 文件。
  2. 给这个文件添加可执行权限:chmod +x npm
  3. 将文件放到你的 PATH 环境变量中,例如:~/bin/usr/local/bin

这样,你就可以继续使用 npm 命令,但实际上它会根据情况调用 cnpm 或者原生的 npm

这种方式的好处是你不需要改变习惯,同时还能享受到 cnpm 的高速下载速度。

回到顶部