0
点赞
收藏
分享

微信扫一扫

【Node.js】-包以及npm基本使用操作

科牛 2023-12-15 阅读 34

一、包的概念

模块、代码、其他资料聚合成一个文件夹

包分类:

项目包:主要用于编写项目和业务逻辑

软件包:封装工具和方法进行使用

要求:根目录中,必须有package.js文件(记录包的清单信息)

注意:导入软件包时,引入的默认是index.js模块文件/main属性指定的模块文件

【Node.js】-包以及npm基本使用操作_封装

【Node.js】-包以及npm基本使用操作_node.js_02

二、案例

需求:封装数组求和函数的模块,判断用户名和密码长度函数的模块,形成一个软件包

【Node.js】-包以及npm基本使用操作_封装_03

/**
 * 目标:封装数组常用的方法
 */
// 数组求和函数
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

module.exports = {
  getArraySum
}

/**
 * 目标:封装校验用户名和密码长度的函数
 * 要求:用户名最少 8 位,密码最少为 6 位
 */

const checkUserName = username => {
  return username.length >= 8
}

const checkPassWord = password => {
  return password.length >= 6
}

module.exports = {
  checkUser: checkUserName,
  checkPwd: checkPassWord
}

/**
 * 本文件是,utils 工具包的唯一出口
 * 作用:把所有工具模块方法集中起来,统一向外暴露
 */
const { getArraySum } = require('./lib/arr.js')
const { checkUser, checkPwd } = require('./lib/str.js')

// 统一导出所有函数
module.exports = {
  getArraySum,
  checkUser,
  checkPwd
}

/**
 * 目标:导入 utils 软件包,使用里面封装的工具函数
 */
const obj = require('./utils')
console.log(obj)
const result = obj.getArraySum([10, 20, 30])
console.log(result)


【Node.js】-包以及npm基本使用操作_封装_04


三、npm-软件包管理器

 1.定义

npm是Node.js标准的软件包管理器

起初是作为下载和管理Node.js包依赖的方式

2.使用

初始化清单文件:npm init-y(得到package.json文件,有则略过此命令)

下载软件包:npm i软件包名称

3.使用软件包

【Node.js】-包以及npm基本使用操作_node.js_05


3.案列示例

/**
 * 目标:使用 npm 下载 dayjs 软件包来格式化日期时间
 *  1. (可选)初始化项目清单文件,命令:npm init -y
 *  2. 下载软件包到当前项目,命令:npm i 软件包名称
 *  3. 使用软件包
 */
// 3. 使用软件包
const dayjs = require('dayjs')
const nowDateStr = dayjs().format('YYYY-MM-DD')
console.log(nowDateStr)

【Node.js】-包以及npm基本使用操作_node.js_06

【Node.js】-包以及npm基本使用操作_node.js_07

【Node.js】-包以及npm基本使用操作_node.js_08

4.npm安装有所依赖

从别人那里拿到的项目,通常是不包含node_modules,这是因为自己用npm下载依赖比磁盘传递拷贝要快的多

解决:项目终端输入命名:npm i

下载package.json中记录的所有软件包

四、npm全局软件包nodemon

软件包区别:

本地软件包:当前项目内使用,封装属性和方法,存在于node_modules

全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置

作用:替代node命令,检测代码更改,自动重启程序

使用:

1.安装npm i nodemon -g(-g代表安装到全局环境中)

2.运行nodemon待执行的目标js文件

代码示例:

/**
 * 目标:使用 nodemon 全局软件包,检测文件变化,自动重启程序
 * 语法:
 *  1. 安装 nodemon 全局软件包,命令:npm i nodemon -g
 *  2. 使用 nodemon 来执行目标 js 文件
 * 体验:启动后,修改代码,保存后观察终端效果
 */

// 格式化日期
const dayjs = require('dayjs')
const nowDateStr = dayjs().format('YYYY-MM-DD')
console.log(nowDateStr)

// 求数组里最大值
const _ = require('lodash')
console.log(_.max([1, 55, 2, 3, 4, 8]))
console.log(_.max([1, 10, 2, 3, 4, 8]))

【Node.js】-包以及npm基本使用操作_封装_09

【Node.js】-包以及npm基本使用操作_node.js_10

五、总结

Node.js包:

模块、代码、其他资料聚合成一个文件夹

包分类:

项目包:主要用于编写项目和业务逻辑

软件包:封装工具和方法进行使用(一般使用npm管理)

本地软件包:作用在当前项目,一般封装的属性/方法,供项目调用编写业务要求

全局软件包:作用在所有项目,一般封装的命令/工具,支撑项目运行

【Node.js】-包以及npm基本使用操作_封装_11

【Node.js】-包以及npm基本使用操作_node.js_12

举报

相关推荐

0 条评论