【前端】NodeJs包管理工具NPM

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS部署上的很多问题。

测试是否安装成功,出现版本提示表示安装成功。

npm -v

NPM常用命令

官方文档:https://www.npmjs.com/package/doc

npm install <module> #安装模块
npm uninstall <module> #卸载模块
npm update <module> #更新模块
npm search <module> #搜索模块
npm init <module> #创建模块模块
npm add user #npm资源库中注册用户
npm publish #发布模块
npm help #可查看所有命令
npm help <command> #查看某条命令详细帮助
npm install . -g #可以先在本地安装当前命令行程序,可以用于发布前的本地测试
npm cache clear #清空NPM本地缓存
npm unpublish <package>@<version> #撤销发布过的某个版本

检查模块卸载是否成功:进入/node_modules/目录查看包是否还在,或者使用如下命令:

npm ls

全局安装与本地安装

npm包安装分本地安装(local)和全局安装(global),差别是带不带 -g(global).

  • 本地安装:将安装包放在./node_modules下;可以通过require()引入本地安装包。
  • 全局安装:将安装包放在/urs/local或者node的安装目录;可以直接在命令行使用。
npm install <module>           # 本地安装
npm install <module> -g           # 全局安装
npm list -g     #查看所有全局安装模块
npm list <module>         #查看具体模块版本号

使用package.json

package.json位于模块的根目录下,用于定义包的属性。

package.json具体属性说明:

  • name——包名
  • version——包的版本号
  • description——包的描述
  • homepage——包的官网url
  • author——包的作者
  • contributors——包的其他贡献者
  • dependencies——依赖包列表。如果依赖包没有安装,npm会自动将依赖包安装在node_module目录下
  • repository——包代码存在的地方类型,可以是git、svn
  • main——程序的主入口文件,默认是模块根目录的index.js
  • keyword——关键字

NPM版本号

NPM使用语义版本号管理代码。语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。代码变更时,版本号按照如下原则更新。

  • 如果只是修复bug,需要更新Z位。
  • 如果是新增了功能,但向下兼容,需要更新Y位。
  • 如果有大变动,向下不兼容,需要更新X位。

版本号有了这个保证后,在申明第三方包依赖的时候,可以依赖某个范围的版本号。

使用淘宝NPM镜像

国内直接使用npm官方镜像非常慢,可以使用淘宝NPM镜像。淘宝NPM镜像是一个完整的npmjs.org镜像,同步频率为10min一次。

淘宝npm: http://npm.taobao.org/

npm install -g cnpm --registry=https://registry.npm.taobao.org #安装cnpm代替npm
npm config set registry https://registry.npm.taobao.org/ #直接修改npm镜像仓库registry