欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

npm和cnpm区别

程序员文章站 2022-05-31 20:22:46
...

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字段简介

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

  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的终端中输入一下命令即可:

    $ 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