初识NodeJs模块化

初识NodeJs模块化

羽晨sir 💕

模块化

1.当我们使用require()方法时,会执行被加载模块中的代码

1
2
3
4
5
6
7
// 1.导入http模块
const http = require('http');
// 2.创建 web 服务器实例
const server = http.createServer()
// 3.为服务器实例绑定 request,监听客户端请求
server.on('request', (req, res) => {})
server.listen(80,function () {})
  • 我们写的自定义模块,也可以被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
2
3
4
// 查看当前的下包镜像源
npm config get registry
// 将下包的镜像源切换为淘宝镜像源
npm config set registry=http://registry.npm.taobao.org/
  • 当然,也可以使用快捷方式切换,但我们需要安装 nrm
    1
    2
    3
    4
    5
    6
    // 安装 nrm
    npm i nrm -g
    // 查看所有可用的镜像源
    nrm ls
    // 将下包的镜像源切换为 taobao 镜像
    nrm use taobao

6.包的分类

6.1 全局包

  1. 在执行 npm install 命令时,如果提供了 -g参数,则会把包安装为全局包
    1
    2
    3
    4
    // 全局安装指定的包
    npm -i 包名 -g
    // 卸载全局安装的包
    npm uninstall 包名 -g

    只有工具性质的包才有全局安装的必要性,以为他们提供好用的终端命令。

6.2 i5ting_toc

  1. 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.包的规范

  1. 一个规范的包,符合下面三点要求:
  • 包必须以单独的目录存在
  • 包的顶级目录下必须包含 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