npm下载模块的时候可能会慢,请看:
是时候放弃用 cnpm 命令了
npm原理
和composer等包管理工具一样,npm也是根据元数据进行包管理的。
这里经过几个步骤:
npm读取package.json,这个json是在项目根目录的。
npm通过读取到的json数据去Packagist.org获取各个包的包名、作者、下载URL等信息。实际上就是执行
npm view 包名
。根据元数据,找到其中的tarball字段,它的值就是模块压缩包的下载地址。
下载压缩包,并且放到当前目录的.npmrc目录里面,然后解压到node_modules目录
npm使用
npm是nodeJS默认的模块管理器,有必要掌握。
运行下面的命令,查看各种信息:
# 查看 npm 命令列表
$ npm help
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 的版本
$ npm -v
# 查看 npm 的配置
$ npm config list -l
查找模块
npm search命令用于搜索npm仓库,它后面可以跟字符串,也可以跟正则表达式。
$ npm search <搜索词>
例子:
$ npm search gulp
模块列表
npm list命令以树型结构列出当前项目安装的所有模块,以及它们依赖的模块。加上global参数,会列出全局安装的模块。
npm list #当前项目安装的模块
npm list -global #全局安装的模块
安装模块
Node模块采用npm install命令安装。
每个模块可以“全局安装”,也可以“本地安装”。“全局安装”指的是将一个模块安装到系统目录中,各个项目都可以调用。一般来说,全局安装只适用于工具模块,比如eslint和gulp。“本地安装”指的是将一个模块下载到当前项目的node_modules子目录,然后只有在项目目录之中,才能调用这个模块。
sudo npm install <package name> #本地安装
sudo npm install -g <package name> # 全局安装
安装本地模块之前,要保证package.json已经存在
如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f或–force参数。
卸载
sudo npm uninstall <package name> #卸载本地模块
sudo npm uninstall <package name> -g #卸载全局模块