node笔记04——Nodejs学习之npm与包,npm包管理器的使用,安装,镜像源切换包含案例演示。

npm与包

Node.js中的第三方模块又叫做包,第三方模块和包所指的是统一概念

包的来源不同于Node.js中的内置模块,是有第三方或者个人或团队开发出来的,是免费开源的。

为什么需要包:

Node.js的内置模块只是提供了底层的API,包是通过内置模块封装出来的,通过包,可以提高开发效率。

包的下载方式

搜索:www.npmjs.com是全球最大的包共享平台,目前1100万开发中开发共享了120多万个不同的包,

下载:此外该公司还提供了一个地址为http://registry.npmjs.org的服务器来下载所需要的包。具体需要通过npm包管理工具进行下载,

该管理工具在安装node.js的时候就一并安装了。在终端中输入npm -v可以查看当前npm管理工具的版本。

案例:传统方法实现对时间的格式化

一、

// 自定义模块
// 定义格式化时间的方法
function dateFormat(dtStr){
    const dt = new Date(dtStr)

    const y = dt.getFullYear()
    const m = padZero(dt.getMonth() +1)
    const d = padZero(dt.getDate())
    const hh = padZero(dt.getHours())
    const mm = padZero(dt.getMinutes())
    const ss = padZero(dt.getSeconds())
    
    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
// 定义补零的函数
function padZero(n){
    return  n > 9 ? n : '0' + n
}

// 对外暴露
module.exports = {
    dateFormat
}

二、

// 导入自定时格式化时间模块
const TIME = require('./15dateFormat')

// 调用方法进行时间格式化
const dt = new Date()
console.log(dt)// 格式化之前  2022-06-06T05:42:12.025Z
console.log(TIME.dateFormat(dt))// 格式化之后  2022-06-06 13:42:12

案例:利用npm包进行时间格式化

  • 使用npm包管理工具安装格式化时间的包:moment包

    npm install 包完整名称命令来安装包,简写形式npm i 包完整名称

  • 使用require导入包

  • 参考包的API文档对时间进行格式化

    // 导入所需要的包,导入的名称就是安装时的包名
    const moment = require('moment')
    // 根据包的文档来使用
    const dt = moment().format('YYYY-MM-DD HH:mm:ss'); 
    console.log(dt)
    

    初次装包后的文件

    在初次安装了一个包之后,项目文件中会出现一个 node_modulespackage-lock.json的配置文件

    node_modules:用于存放当前项目中以及三种的按

    package-lock.json:用于寂寞node_modules目录下每一个包的下载信息,地址,版本号等

    注意:一般不要手动修改配置文件中的代码,npm包管理工具会自动对其维护

    安装指定版本的包

    npm会自动安装最新版本的包,可以通过如下命令安装指定版本的包:

    npm i moment@2.22.2

    最新的安装会替换之前的安装

    包的语义化版本规范

    如版本号为 2.22.2

    包的第一位数字为大版本、第二位数字为功能版本、第三位数字为bug修复版本

    如果第一位版本号增长,后面的第二位和第三位数字归零。

    包管理配置文件

    npm规定在项目根目录中必须提供一个packge.json的包管理配置文件,其中记录了项目的名称、版本号、项目中所用的包、开发期间用的包、在开发和部署都要用的包等信息。

    多人协作开发的问题

    第三方包的体积一般比项目源代码的体积大,所以并不方便团队成员直接的管理与共享。

    解决方案:在共享时剔除掉 node_modules目录

    如何记录项目中安装了那些包

    在项目根目录中,创建一个package.json配置文件用于记录项目中所安装了哪些包,从而方便在剔除node_modules目录后共享代码。

    注意:在项目开发中一定要把node_moudules文件夹添加到.gitgnore忽略文件中,再上传到github。

    创建package.json文件

    使用命令 npm init -y

    注意事项:1、上述命令只能在英文的项目目录下运行,不能使用中文。 2、运行npm install命令安装包的时候,npm包管理工具会自动记录包的名称和版本号在package.json中。

    在package.json文件中会有一个dependencies节点,该节点用来记录当前使用 npm install 命令安装的包

    "dependencies": {
        "moment": "^2.29.3"// 属性名为包名,属性值为当前包的版本号
      },
    

    一次性安装所有的包

    如果一个项目剔除了node_modules后,需要先安装该项目所依赖的所有包。在package.json文件中记录了所有的依赖的包以及版本号。此时只需要运行 npm install后就可以将所有依赖的包下载安装到项目中。

    卸载指定的包

    使用npm uninstall 指定的包名 命令来卸载指定的包,uninstall不可简写。卸载包的时候dependencies节点中的包信息也会被删除。

    devDependencies节点

    如果某些包在开发阶段会用到,而部署上线不需要,则需要将该包记录到devDependencies节点当中。如果开发和上线都需要使用,则记录到dependencies节点当中。

    npm i 包名 -D 命令可以在安装包的时候同时添加到devDependencies节点。-D是–save-dev的简写。

    示例:npm i webpack-D / npm install webpack–save-dev

    国内下包服务慢

    一、应为npm服务器在国外,国内访问下载速度会较慢,利用淘宝的镜像服务器可以提高在国内的npm包下载速度。

    npm config get registry 命令可以查看当前的下包的服务器地址。

    npm config set registry=https://registry.npm.taobao.org/ 命令可以更改下包服务器为淘宝镜像地址。

    二、通过安装nrm工具可以方便快速的查看和切换下包服务器地址

    npm i nrm -g:安装nrm

    nrm ls:查看所有可用镜像

    nrm use taobao:切换镜像源为淘宝

    项目包和全局包

    项目包就是值得安装在项目中的 node_modules 目录中的包

    • 开发依赖包:记录在 devDependencies中的包npm i 包名 -D
    • 核心依赖包:记录在 dependencies中的包npm i 包名

    如果安装npm包的命令后面加入了-g参数,则会把包安装为全局包,全局包会被安装到C:/user/用户目录/AppData/Roaming/npm/node_modules 目录中

    **注意:**只有工具性质的包才有全局安装的必要性,通过官方说明参考是否需要全局安装才能使用。

    i5ting_toc包

    该工具包是一个可以将md文档转换为html页面的小工具

    i5ting_toc -f 要转换文件的路径 -o:调用转换的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值