
初识NodeJs模块化

模块化
1.当我们使用require()
方法时,会执行被加载模块中的代码
1 | // 1.导入http模块 |
我们写的自定义模块,也可以被
require()
出来在模块内定义的成员,无法在外面被访问,防止全局变量污染问题。
module可以向外共享模块作用域中的成员。
而在每个我们写的js文件中,都有一个module对象,它里面存储了和当前模块的信息。可以用代码打印:
console.log(module);
- 在自定义模块内,使用 module.exports 对象,将模块内成员共享出去,给外界使用,默认在自定义模块化中, module.exports = {}
- 外界 用 require() 方法导入自定义模块时,得到的就是 module.exports 所指的对象。
2.使用命令 npm init -y
可以快速创建配置文件 package.json ,但要注意,上述命令只能在英文目录下运行,不能有中文或空格
- package.json 配置文件,可用来记录项目中安装了哪些包。从而方便剔除 node_modules 目录之后,方便成员之间共享代码。
3.在 package.json 配置文件中,有一个 dependencies
节点,专门用来记录您使用 npm install 命令安装了哪些包。
当我们下载别人的项目时,我们可以使用命令
npm install
来下载该项目所依赖的包,也就是 package.json 下的 dependencies 的节点所显示的包卸载某个包,只要使用命令
npm uninstall 包名
4. devDependencies 节点:只在开发阶段用得到
- 如果某些包,只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies节点中。与之对应的,如果某些包在开发和项目上线之后都会用到,则建议把这些包记录到 devDependencies节点中。
- 使用命令
npm i 包名 -D
意思就是说,将这个包记录到devDependencies节点中。上述命令等同于npm install 包名 --save-dev
5.解决下载包速度慢的问题
- 切换 npm 的下包镜像源
1 | // 查看当前的下包镜像源 |
- 当然,也可以使用快捷方式切换,但我们需要安装
nrm
1
2
3
4
5
6// 安装 nrm
npm i nrm -g
// 查看所有可用的镜像源
nrm ls
// 将下包的镜像源切换为 taobao 镜像
nrm use taobao
6.包的分类
6.1 全局包
- 在执行
npm install
命令时,如果提供了-g
参数,则会把包安装为全局包1
2
3
4// 全局安装指定的包
npm -i 包名 -g
// 卸载全局安装的包
npm uninstall 包名 -g只有工具性质的包才有全局安装的必要性,以为他们提供好用的终端命令。
6.2 i5ting_toc
- i5ting_toc 是一个可以把md文档转换为 html 页面的小工具,使用步骤为:
1
2
3
4// 将i5ting_toc安装为全局包
npm install -g i5ting_toc
// 调用 i5ting_toc ,轻松实现 md 转html
i5ting_toc -f 要转换的md文件路径 -o
7.包的规范
- 一个规范的包,符合下面三点要求:
- 包必须以单独的目录存在
- 包的顶级目录下必须包含
package.json
这个包管理配置文件 - package.json 中必须包含
name
,version
,main
三个属性,分别是包的名字
,包的版本号
,包的入口
。
8. 设计一款自己的“包”
- 新建
包名
文件夹,作为包的根目录 - 在
包
文件夹中,新建三个文件:- package.json(包管理配置文件)
- index.js(包的入口文件)
- README.md(包的说明文档)
- 建成包之后,可以上传至
npm
官网包管理服务器中。
- Title: 初识NodeJs模块化
- Author: 羽晨sir
- Created at : 2024-01-29 22:02:57
- Updated at : 2024-05-10 17:07:49
- Link: https://www.douyin.com/user/self?modal_id=7301289319514361127/2024/01/29/初识NodeJs/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments