nodejs 包管理工具 npm,如何使用呢?cnpm,rnpm又是什么呢?
NPM
npm 是什么?
npm
为你和你的团队打开了连接整个 JavaScript
天才世界的一扇大门。它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。
相关网址
https://www.npmjs.com/
http://npm.taobao.org/mirrors
https://www.runoob.com/nodejs/nodejs-npm.html
下面是关于 npm 的快速介绍:
npm 由三个独立的部分组成:
- 网站
- 注册表(registry)
- 命令行工具 (CLI)
网站 是开发者查找包(package)
、设置参数以及管理 npm
使用体验的主要途径。
注册表 是一个巨大的数据库,保存了每个包(package)
的信息。
CLI
通过命令行或终端运行。开发者通过 CLI
与 npm
打交道。
使用
## 产看版本号
$ npm -v
2.3.0
## 在当前项目安装一个依赖性
$ npm install <Module Name>
## 全局安装
$ npm install npm -g
## 展示当前项目已安装依赖
$ npm list
## 查看某个包的具体信息
$ npm list grunt
## 展示全局所有包
$ npm list -g
## 卸载某个包
$ npm uninstall express
## 搜索相关 包
$ npm search express
## 自己初始化一个包
$ npm init
包管理
npm是nodeJS包管理工具,经常会遇到下载依赖包非常缓慢,或者是下载不了的情况,所以需要更换包的源。
淘宝npm地址:http://npm.taobao.org/
临时
$ npm --registry https://registry.npm.taobao.org install express
永久生效
$ npm config set registry https://registry.npm.taobao.org
验证设置是否成功
$ npm config get registry
# OR
$ npm info express
通过cnpm 使用
$ npm install -g --registry=https://registry.npm.taobao.org
# 使用
$ cnpm install install express
cnpm
需求由来
由于node安装插件是从国外服务器下载,受网络影响大,速度慢且可能出现异常。所以如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)干了这事。来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
也就是说我们可以使用阿里布置在国内的服务器来进行node安装。
2.使用方法
1.使用阿里定制的 cnpm 命令行工具代替默认的 npm,输入下面代码进行安装:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
2.检测cnpm版本,如果安装成功可以看到cnpm的基本信息。
cnpm -v
3.以后安装插件只需要使用cnpm intall
即可
cnpm 用法和 npm 的用法是一样的。
rnpm
rnpm是什么?React Native基础之Linking Libraries链接库配置,Android/iOS RN原生功能依赖
“rnpm”是一个社区开源项目,该可以提供原生代码自动依赖链接的功能
React Native不是所有的应用都需要使用所有的原生代码开发的功能,并且需要包含所有特性的代码来支持,这样开发的应用包就会变得很大很臃肿。
但是我们还是希望能够简单快速的添加原生的特性功能。在这种情况下面我就有一种方案:把一下互不干扰的功能进行打包成静态库。
pnpm
正如我所提到的,在pnpm的作者Zoltan Kochan发表了“为什么要用pnpm?”之后,我才知道pnpm。
我不会介绍太多的细节(因为这篇文章已经发布很久了),但是你可以查看我的最初的帖子来寻找更多的内容,同时在Twitter上加入讨论。
但是,我想指出的是,pnpm运行起来非常的快,甚至超过了npm和yarn。
为什么这么快呢? 因为它采用了一种巧妙的方法,利用硬链接和符号链接来避免复制所有本地缓存源文件,这是yarn的最大的性能弱点之一。
使用链接并不容易,会带来一堆问题需要考虑。
正如Sebastian在Twitter上指出的那样,他最初是打算在yarn中使用符号链接的,但是由于其他一些原因放弃了它。
同时,正如在Github上拥有2000多个Star那样,pnpm能够为许多人所用。
此外,截至2017年3月,它继承了yarn的所有优点,包括离线模式和确定性安装。
参考
- https://www.cnblogs.com/onew/p/11330439.html
- https://juejin.im/post/6844903616109641736
- https://www.jianshu.com/p/3d48785295d2
- http://ian.wang/292.htm