npm与包

Node.js中的第三方模块又叫做

包是由第三方个人或团队开发出来的,免费供所有人使用

包是基于内置模块封装出来的,提供了更高级,更方便的API,极大的提高了开发效率

搜索包

npmhttps://www.npmjs.com/下载包

https://registry.npmjs.org/https://registry.npmjs.org/通过 npm -v 查看自己包的版本号

在项目中安装包

npm i 包的完整名称

 如何进行日期初始化,旧方法:

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

    const y = dt.getFullYear();
    const m = padZero(dt.getMonth() + 1);
    const d = padZero(dt.getDay());

    const h = padZero(dt.getHours());
    const min = padZero(dt.getMinutes());
    const s = padZero(dt.getSeconds());

    return `${y}-${m}-${d} ${h}:${min}:${s}`;
}

// 补零函数
function padZero(n) {
    return n > 9 ? n : '0' + n;
}

module.exports = {
    dateFormat
}

 再创建js文件:

// 导入自定义的格式化时间模块
const TIME = require('./06-日期初始化');

// 调用方法进行时间的格式化 
const dt = new Date();
// console.log(dt);
TIME.dateFormat(dt);
const newDT = TIME.dateFormat(dt);
console.log(newDT);

使用 day.js 包初始化日期:

// 导入需要的包
const dayjs = require('dayjs');

const dt = dayjs().format('YYYY-MM-DD HH:mm:ss');
console.log(dt);

完成!

初次装包后项目文件夹下多了一个 node_modules 的文件夹和 package-lock.json 的配置文件

其中 node_modules 文件夹用来存放所有已安装到项目中的包 , require() 导入第三方包时,就是从这个目录中查找并加载包        

package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等

注意:程序员不要手动修改 node_modules package-lock.json 文件中的任何代码,npm 包管理工具会自动维护它们

默认情况下,使用 npm install 命令安装包的时候,会自动安装最新版本的包。如果需要安装指定版本的包,可以在包名之后,通过 @ 符号指定具体的版本,例如:

npm i dayjs @1.10.1

新命令会覆盖原先安装的包

包的语义化版本规范

包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 2.24.0

其中每一位数字所代表的的含义如下:

1位数字:大版本

2位数字:功能版本

3位数字:Bug修复版本

包管理配置文件

npm规定,在项目根目录中,必须提供一个叫做package.json 的包管理配置文件。用来记录与项目有关的一些配置信息。例如:

项目的名称、版本号、描述等
项目中都用到了哪些包
哪些包只在 开发期间 会用到
哪些包在 开发 部署 时都需要用到

1. 如何记录项目中安装了哪些包

    在项目根目录中,创建一个叫做 package.json 的配置文件,即可用来记录项目中安装了哪些包。从而方便剔除 node_module 目录之后,在团队成员之间共享项目的源代码。

注意:今后在项目开发中,一定要把 node_modules 文件夹,添加到 .gitignore 忽略文件中。

2. 快速创建 package.json

npm包管理工具提供了一个快捷命令,可以在执行命令时所处的目录,快速创建 package.json这个包管理配置文件:

// 作用:在执行命令所处的目录中,快速创建 package.json 文件
npm init -y

注意:

上述命令 只能在英文的目录下成功运行 !所以,项目文件夹的名称一定要使用英文命名, 不要使用中文 不能出现空格
运行 npm install 命令安装包的时候, npm 包管理工具会自动把 包的名称 版本号 ,记录到 package.json 中。

 

3. dependencies 节点

package.json 文件中,有一个 dependencies 节点,专门用来记录您使用 npm intall 命令安装了哪些包,如果某些包在开发和项目上线之后都需要用到,则建议把这些包放到 dependencies

4. 一次性安装所有的包

当我们拿到一个剔除了 node_modules 的项目之后,需要先把所有的包下载到项目中,才能将项目运行起来。可以运行 npm install 或 npm i 命令 一次性安装所有的依赖包 

npm install

执行 npm instal 命令时,npm包管理工具会首先读取 package.json 中的 dependencies 节点,读取到记录的所有依赖包名称和版本号之后,npm 包管理工具会把这些包一次性下载到项目中

5. 卸载包

可以运行 npm uninstall 命令, 来卸载指定的包,npm uninstall 命令卸载包成功后,会自动从package.json 中的 dependencies 节点下删除包

6. devDependencies 节点

如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDenpendencies

// 安装指定的包,并记录到 devDenpendcies 节点中

npm i 包名 -D

完整写法: npm install 包名 --save-dev

7. 解决下包速度慢的问题

切换npm的下包镜像源(指下包的服务器地址)

// 查看当前的下包镜像源

npm config get registry

// 将下包的镜像源切换为淘宝镜像源

npm config set registry=https://registry.npm.taobao.org/

8. nrm 

为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具 ,快速查看和切换下包的镜像源

// 通过 npm 包资源管理器,将 nrm 安装为了全局可用的工具

npm i nrm -g

// 查看所有可用的镜像源

nrm ls

// 将下包的镜像源切换为 taobao 镜像

nrm use taobao

9. 包的分类

项目包 :被安装到项目的 node_modules 目录中的包,都是项目包

项目包又分两类:

开发依赖包:被记录到devDenpendencies 节点中的包,只在开发过程中使用

核心依赖包:被记录到denpendencies 节点中的包,在开发期间和项目上线之后都会用到

npm i 包名 -D         // 开发依赖包       

 npm i 包名 -D        // 核心依赖包

 全局包:在执行npm install 命令时,如果提供了 -g 参数, 则会把包安装为全局包

全局包会安装到 C:\Users\Lenovo\AppData\Roaming\npm\node_modules 目录下

npm i 包名 -g # 全局安装指定的包

npm install 包名 -g # 卸载全局安装的包

注意:

只有 工具性质的包 ,才有全局安装的必要性。因为它们提供了好用的终端命令
判断某个包是否需要全局安装后才能使用,可以 参考官方提供的使用说明 即可

10. i5ting_toc 

i5ting_toc 是一个可以把 md 文档转为 html 页面的小工具,使用步骤如下:

// 将 i5ting_toc 安装为全局包

npm install -g i5ting_toc

// 调用 i5ting_toc, 轻松实现 md 转 html 的功能

i5ting_toc_toc -f 要转换的md文件路径 -o

 11. 规范的包结构

一个规范的包,它的组成结构,必须符合以下 3 点要求:

包必须以 单独的目录 而存在
包的顶级目录下要必须包含 package.json 这个包管理配置文件
package.json 中必须包含 name version main 这三个属性,分别代表 包的名字、版本号、包的入口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值