概念

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 npm -v来测试是否成功安装。

使用淘宝镜像的命令:

  1. npm install -g cnpm --registry=https://registry.npm.taobao.org

初始化

  1. // 初始化 引导你创建一个package.json文件
  2. npm init
  3. // 所有都是默认选项
  4. npm init -y

下载包

  1. // 安装
  2. npm install 包名
  3. // 简写
  4. npm i 包名
  5. // 安装指定版本
  6. npm i 包名@版本号
  7. // 全局安装
  8. npm i sass -global
  9. // 简写
  10. npm i sass -g
  11. // 安装到项目依赖
  12. // 描述:项目发布上线之后还会依赖用到的插件,没有这些插件,项目不能运行
  13. npm i jquery -save
  14. // 简写
  15. npm i jquery -S
  16. // 安装到开发依赖
  17. // 描述:安装到开发依赖中,项目上线之后不会用到的插件
  18. // (例如一些预编译包,如sass-loader,less-loader等,仅在开发环境中会用到)
  19. npm i jquery --save-dev
  20. // 简写
  21. npm i jquery -D

查看安装模块

  1. npm list -g 全局的安装包
  2. npm list 已安装的node

更新包

  1. npm update 包名

卸载包

  1. npm uninstall 包名

文件介绍

node_modules文件夹

  1. 文件夹以及文件过多过碎,当我们将项目整体拷贝给别人的时候,传输速度会很慢很慢
  2. 复杂的模块依赖关系需要被记录,确保模块的版本和当前保持一致,否则会导致当前项目运行报错

    package.json文件的作用

  3. 项目描述文件,记录了当前项目信息,例如项目名称、版本、作者、github地址、 当前项目依赖了哪些第三方模块等。

  4. 项目依赖(dependencies
    1. 在项目的开发阶段和线上运营阶段,都需要依赖的第三方包,称为项目依赖
    2. 使用 npm install 包名命令下载的文件会默认被添加到 package.json 文件的 dependencies 字段中
  5. 开发依赖(devDependencies
    1. 在项目的开发阶段需要依赖,线上运营阶段不需要依赖的第三方包,称为开发依赖
    2. 使用 npm install 包名 —save-dev 命令将包添加到 package.json 文件的 devDependencies 字段中
  6. 属性说明

    • name - 包名。
    • version - 包的版本号。
    • description - 包的描述。
    • homepage - 包的官网 url 。
    • author - 包的作者姓名。
    • contributors - 包的其他贡献者姓名。
    • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
    • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
    • main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
    • keywords - 关键字

      package-lock.json文件的作用

  7. 锁定包的版本,确保再次下载时不会因为包版本不同而产生问题

  8. 加快下载速度,因为该文件中已经记录了项目所依赖第三方包的树状结构和包的下载地址,重新安装时只需下载即可,不需要做额外的工作