NPM - 包管理工具

875 阅读3分钟

npm 基础知识

  • npm 是什么:

npm(全称 Node Package Manager,即node包管理器)Node.js默认的、JavaScript编写的软件包管理系统。

  • npm 使用场景:

    • 允许用户从 npm服务器 下载别人编写的第三方包到本地开发项目中使用;
    • 允许用户从 npm服务器 下载并安装别人编写的命令行程序到本地全局使用;
    • 允许用户将 自己编写的包或命令行程序 上传到npm服务器供别人使用。
  • npm 工作原理:

    npm依赖解析的主要思想:尽可能地减少间接依赖安装目录的深度,最理想的情况是与直接依赖安装在同一目录下,通过这种方式来减少依赖目录的嵌套,缓解整个依赖目录层次过深的问题。(因为 Windows 中文件路径的长度不能大于 260 个字符。)

  • npm 安装(随同 Node.js 一起安装):

    1. 进入Node.js 官方网站,找到 Downloads 栏目,选择适合自己系统的安装包进行安装。
    2. 在MacOS系统上建议先安装Homebrew,然后使用homebrew来安装NPM。
    brew install nodejs
    

npm 基本使用

  • 常用参数:

    • -g, --global:安装全局依赖,如果没有指定依赖包名,则将当前目录中的包安装至全局
    • -S, --save:安装依赖的同时将该依赖写入 dependencies
    • -D, –-save-dev:安装依赖的同时将该依赖写入 devDependencies
    • -O, --save-optional:安装依赖的同时将该依赖写入 optionalDependencies
    • -E, --save-exact:写入 package.json 时带有确切版本号
    • –no-optional:不安装 optional dependencies,可继承
  • 常用命令:

    # 项目开发相关
    npm init  			# 在项目根目录下,创建一个 package.json 文件,需要填写一些内容
    npm init -y   			# 在 package.json 文件中全部使用默认选项
    
    npm install <packageName> 	# 安装 项目内部局部包,项目开发依赖包
    npm install -g  <packageName> 	# 安装 本地全局环境包,多为 命令行程序
    
    npm update <packageName> 	# 对项目内单个依赖包升级
    npm update -g <packageName>     # 更新全局的软件包
    npm -g outdated 		# 使用此命令可以查看那些包有更新
    
    npm uninstall <packageName>  	# 卸载本地(local)软件包
    npm uninstall -g <packageName>  # 卸载全局(global)软件包
    
    npm list 			# 查看本地(local)软件包列表
    npm list -g 			# 查看系统中全局安装过的软件包
    
    # npm 发包相关
    npm adduser  			# 创建一个 npm 账号(Username,Password,Email)
    npm login			# 登录 npm 仓库账号(Username,Password)
    npm publish  			# 发布自己的包到 npm,或者 更新已有的 npm 包
    npm link			# 将本地开发包挂载到全局环境,可作为全局命令使用
    

npm 发包流程

  • 全局环境(node、npm)

    node -v  # node > 8.0.0
    npm -v
    
  • npm 账号、检测包名是否存在

  • 本地创建项目文件,执行 npm init -y,对 package.json 做简单调整

    {
      "name": "star-utils",
      "version": "0.0.1",
      "description": "",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
    }
    
  • 使用 npm login,登录自己的 npm 账号

  • 使用 npm publish,发布自己的包到 npm

注意

  1. 发布自己包之前,应先去 npm 官网搜索自己要发布的包名是否已经存在,已存在的包名会提交失败;
  2. 自己发布的包更新时,每次都要到package.json, 将 version 修改,例如:从1.0.0改为1.0.1。然后再执行 npm publish更新;
  • 补充说明(包名检索和查看自己发布的包)

    1. 打开npm官网,输入你的包名,如有结果则存在;
    2. 点击个人头像 -> Packages, 即可查看自己已发布的所有包。