npm 介绍 、常用指令

一、什么是 npm

  • 全称:Node Package Manager

  • npm 是一个 随 node 一起安装的 node包管理分发工具

  • 通过npm命令可以实现nodejs模块的安装与卸载

  • npm 官网

二、npm 使用场景

  • (1)允许用户从npm服务器:下载 第三方包 到本地

  • (2)允许用户从npm服务器:下载 并 安装 别人编写的 命令行程序 到本地

  • (3)允许用户:将自己编写的 npm包命令行程序 上传到npm服务器

三、npm 基础命令

  • npm是和Node.js一起发布的,只要安装了Node.js,npm也安装好了
1. 检测 npm 是否安装成功
  • 命令:npm -v
2. 更新 npm
  • 命令:npm install npm -g
3. 查看 当前包安装目录
  • 命令:npm root
4. 查看 全局包安装目录
  • 命令:npm root -g

四、使用 npm 安装模块

1. 本地安装
  • 命令:npm install <Module Name> 安装模块 最新版本,不记录在 package.json 中

  • 命令:npm install <Module Name>@版本号 安装模块 指定版本,不记录在 package.json 中

  • 命令:npm install 模块名 --save 安装模块 最新版本,记录在 package.json 的生产环境中

  • 命令:npm install 模块名 --save-dev 安装模块 最新版本,记录在 package.json 的开发环境中

  • 安装细节:

    • (1)上述安装命令,会将 安装包放在 ./node_modules 下;如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 文件夹

    • (2)安装之前 会检查:node_module 中是否已经存在 要安装的模块

      • 如果 本地存在 即使 不是最新版本 也不再安装了

      • 如果需要 强制安装: npm install 模块名 --force

2. 全局安装
  • 命令:npm install <Module Name> -g

  • 将安装包放在 /usr/local/lib/node_modules 下或者你 node 的安装目录

  • 全局包:可以直接在命令行里使用;但不建议安装全局包

3. 查看 模块 版本
  • 前提: 需要在 node_modules 同级目录下 执行如下命令,才能查看 模块的版本号

  • 命令:npm list <Module Name>

4. 更新 模块
  • 前提: 需要在 node_modules 同级目录下 执行如下命令,才能更新 模块

  • 命令:npm update <Module Name>

  • 命令:npm update <Module Name> -g 更新全局中指定模块

5. 卸载 / 移除 模块
  • 前提: 需要在 node_modules 同级目录下 执行如下命令,才能卸载 模块

  • 命令:npm uninstall <Module Name> 卸载模块,不删除 package.json 中的记录

  • 命令:npm uninstall 模块名 --save 卸载模块,删除 package.json 生产环境中的记录

  • 命令:npm uninstall 模块名 --save-dev 卸载模块,删除 package.json 开发环境中的记录

  • 移除命令:npm remove -g 模块名 全局卸载模块

五、创建 模块 / 项目

1. 初始化项目 命令
  • 命令:npm init

  • 执行该命令,会自动生成 package.json 文件

2. 项目中 package.json 必不可少
  • 位置: 位于项目的根目录下

  • 生成方式:

    • 执行 npm init 自动生成

    • 手写 package.json 文件

  • 作用:

    • 记录了 开发环境、生产环境 的依赖的模块列表

    • 记录项目的基础信息(名称、版本、作者信息、项目描述 等)

    • 配置了 项目中的相关的命令(script 中)

3. package.json 中 属性说明
  • package.json详解,简述如下:

  • name: 包名(必须要有)

  • version: 包的版本号(必须要有);包内容的更改和包版本的更改是同步的

  • description: 包的描述

  • main: 指定了程序的主入口文件(

    • 作用: 通过 require('foo') 使用这个模块,那么 require 返回的内容就是 main 属性指定 入口文件
  • dependencies : 线上环境 依赖包列表

    • 这个属性是一个对象,配置模块依赖的列表:key是模块名,value是版本范围

    • 这些依赖是指包发布后正常执行时所需要的,也就是线上需要的包

"devDependencies": {
    "webpack": "^2.2.1",
    "webpack-merge": "^2.6.1",
}
  • devDependencies: 开发环境 依赖包列表

    • 这个属性是一个对象,存的是 额外的测试文件 或 文档框架

    • 这些依赖只有在开发时候才需要

  • homepage: 包的官网 url

  • author: 包的作者姓名

  • contributors: 包的其他贡献者姓名。

  • repository: 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

  • keywords: 关键字

六、发布模块

  • 接下来我们可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册):
npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com
  • 接下来我们就用以下命令来发布模块:
npm publish

七、使用 npm 创建全局连接

  • 命令:在 模块目录下执行 npm link

  • 效果:

    • 局部模块 在全局范围内可用

    • 实际上是:在 npm的全局模块目录内,生成一个指向局部模块的文件(会随着局部模块的变化 而 变化)

  • 更新: 局部包更新 全局范围内的使用,将会随着更新

 /usr/local/lib/node_modules/myModule -> src/myModule 
  • 命令:在任意目录下 执行 npm link <Global Module>

  • 效果:

    • 局部范围内 不用下载包,便可以使用全局;不会将依赖添加到 package.json

    • 实际上是:在局部 node_modules 下,生成了一个指向 全局模块的文件(会随着全局模块的变化 而 变化)

  • 命令: npm unlink <myModule>

  • 项目中不在需要链接的模块,可通过该命令删除

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值