npm和cnpm区别

npm(node package manager)是node的包管理工具,关于npm的详细内容可以看一下NPM介绍,本文主要是对上一篇文章的补充和介绍CNPM的介绍。

上一篇关于NPM介绍的文章中发现最后少介绍了一个知识点,所以先在这里介绍一下。

关于package.json

这货在官网似乎没有详细的描述,其实就是包的描述信息啦。假设当我们下载了node应用,这个node应用依赖于A、B、C三个包,如果没有package.json,我们需要人肉安装这个三个包(如果对版本有特定要求就更悲剧了):

1
2
3
$ npm install A
$ npm install B
$ npm install C

有了package.json,一行命令安装所有依赖。

1
$ npm install

package.json字段简介

字段相当多,但最重要的的是下面几个

  1. name: package的名字(由于他会成为url的一部分,所以 non-url-safe 的字母不会通过,也不允许出现”.”、”_”),最好先在http://registry.npmjs.org/上搜下你取的名字是否已经存在
  2. version: package的版本,当package发生变化时,version也应该跟着一起变化,同时,你声明的版本需要通过semver的校验(semver可自行谷歌)
  3. dependencies: package的应用依赖模块,即别人要使用这个package,至少需要安装哪些东东。应用依赖模块会安装到当前模块的node_modules目录下。
  4. devDependencies: package的开发依赖模块,即别人要在这个package上进行开发
    其他:参见官网

package版本

在package.json里,你经常会在包名后看到类似”~0.1.0”这样的字符串,这就是包的版本啦。下面会列举最常见的版本声明形式,以及版本书写的要求:

常见版本声明形式
a、”~1.2.3” 是神马意思呢,看下面领悟

“~1.2.3” = “>=1.2.3 <1.3.0”

“~1.2” = “>=1.2.0 <1.3.0”

“~1” = “>=1.0.0 <1.1.0”
b、”1.x.x”是什么意思呢,继续自行领悟

“1.2.x” = “>=1.2.0 <1.3.0”

“1.x.x” = “>=1.0.0 <2.0.0”

“1.2” = “1.2.x”

“1.x” = “1.x.x”

“1” = “1.x.x”

版本书写要求

  1. 版本可以v开头,比如 v1.0.1(v只是可选)
  2. 1.0.1-7,这里的7是所谓的“构建版本号”,不理是神马,反正版本大于1.0.1
  3. 1.0.1beta,或者1.0.1-beta,如果1.0.1后面不是 “连字符加数字” 这种形式,那么它是pre release 版本,即版本小于 1.0.1
  4. 根据b、c,有:0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

CNPM

是什么?

因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事。
来自淘宝NPM镜像官网的说明:

“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”

怎么用?

只需要在你的git bash或者mac的终端中输入一下命令即可:

1
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

说明

cnpm支持npm除了publish之外的所有命令,所以说你可以放心的使用cnpm来代替npm使用,这样可能使用包管理的时候更加的方便,因为服务器就在国内。但是,有时候如果你的网络情况比较渣的话,用啥都一样。

本文借鉴自:http://www.cnblogs.com/chyingp/p/npm.html?utm_source=tuicool&utm_medium=referralhttp://blog.csdn.net/shelly1072/article/details/51524029

测试功能而已,你非要赏点我就没办法了...