npm和cnpm区别
npm(node package manager)是node的包管理工具,关于npm的详细内容可以看一下NPM介绍,本文主要是对上一篇文章的补充和介绍CNPM的介绍。
上一篇关于NPM介绍的文章中发现最后少介绍了一个知识点,所以先在这里介绍一下。
关于package.json
这货在官网似乎没有详细的描述,其实就是包的描述信息啦。假设当我们下载了node应用,这个node应用依赖于A、B、C三个包,如果没有package.json,我们需要人肉安装这个三个包(如果对版本有特定要求就更悲剧了):
$ npm install A
$ npm install B
$ npm install C
有了package.json,一行命令安装所有依赖。
$ npm install
package.json字段简介
字段相当多,但最重要的的是下面几个
- name: package的名字(由于他会成为url的一部分,所以 non-url-safe 的字母不会通过,也不允许出现"."、"_"),最好先在http://registry.npmjs.org/上搜下你取的名字是否已经存在
- version: package的版本,当package发生变化时,version也应该跟着一起变化,同时,你声明的版本需要通过semver的校验(semver可自行谷歌)
- dependencies: package的应用依赖模块,即别人要使用这个package,至少需要安装哪些东东。应用依赖模块会安装到当前模块的node_modules目录下。
-
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"
版本书写要求
- 版本可以v开头,比如 v1.0.1(v只是可选)
- 1.0.1-7,这里的7是所谓的“构建版本号”,不理是神马,反正版本大于1.0.1
- 1.0.1beta,或者1.0.1-beta,如果1.0.1后面不是 “连字符加数字” 这种形式,那么它是pre release 版本,即版本小于 1.0.1
- 根据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的终端中输入一下命令即可:
$ 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=referral和http://blog.csdn.net/shelly1072/article/details/51524029
上一篇: Web服务器搭建