Node.js(笔记09) - 包的分类、规范的包结构

时间:2022-12-26 07:59:38

项目包

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

项目包分为两类,分别是:

开发依赖包:被记录到 devDependencies 节点中的包,只在开发期间会用到;

> npm i 包名 -D  #开发依赖包

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

> npm i 包名    #核心依赖包


全局包

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

全局包会被安装到如下目录:

> c:\Users\用户\AppData\Roaming\npm\node_modules

这是npm的默认安装目录,也可以  win+R 调出运行窗口,输出:

> %appdata%\npm

Node.js(笔记09) - 包的分类、规范的包结构

打开 node_modules 目录看下:

Node.js(笔记09) - 包的分类、规范的包结构

可以看到之前安装的 nrm 工具和其他常见的全局包。 

安装和卸载全局包:

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

注意:

1)只有工具性质的包,才有全局安装的必要性,它们提供了好用的终端命令;

2)判断某个包是否需要全局安装,可以参考官方说明;


i5ting_toc

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

#全局安装 i5ting_toc
> npm install i5ting_toc -g

#调用 i5ting_toc ,轻松实现 md 转 html
> i5ting_toc -f 文件.md -o

实操一下:

Node.js(笔记09) - 包的分类、规范的包结构

看下全局 node_modules 目录:

Node.js(笔记09) - 包的分类、规范的包结构

i5ting_toc 有了;

在命令行执行一下转换的命令:

Node.js(笔记09) - 包的分类、规范的包结构

提示:转换的是当前目录的子目录 files 中的 demo.md 文件。

会在当前目录中生成一个 preview 的目录,里面存放着 demo.html 的所有资料;

看下效果:

Node.js(笔记09) - 包的分类、规范的包结构

目录文件包括:

Node.js(笔记09) - 包的分类、规范的包结构

看起来用来生成说明文档很强大;


规范的包结构

在清楚了包的概念、以及如何下载和使用包之后,了解一下 包的内部结构;

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

1)包必须以单独的目录存在;

2)包的*目录下要必须包含 package.json 这个包管理配置文件;

3)package.json 中必须包含 name、version、main 这三个属性,分别代表 包名、版本和入口;

以 moment 包为例:

Node.js(笔记09) - 包的分类、规范的包结构

红框:moment 包自成一个文件夹;

蓝框:moment 包含了 package.json 配置文件;

黄框:除了 name 和 version 属性外,还有 main 属性,外部引入时,会调用 ./moment.js 入口文件;

注意:以上3点要求是一个规范的包结构必须遵守的格式,关于更多约束,可参考:

​https://classic.yarnpkg.com/en/docs/package-json​