【Node.js】模块化:

2023-10-31


1、模块化的基本概念

在这里插入图片描述

2、Node.js 中模块化

【1】Node.js 中模块的分类

在这里插入图片描述

【2】加载模块

在这里插入图片描述

【3】模块作用域

【3-1】模块作用域
在这里插入图片描述
【3-2】模块作用域好处
在这里插入图片描述

【4】向外共享模块作用域中的成员

【4-1】 module 对象
在这里插入图片描述
【4-2】 module.exports 对象

module.exports默认导出为{}

在这里插入图片描述
【4-3】 共享成员时的注意点
在这里插入图片描述
【4-4】exports 对象
在这里插入图片描述
【4-5】exports 和 module.exports 的使用误区
在这里插入图片描述

【5】模块化规范

在这里插入图片描述

3、npm与包(包/依赖/插件)

【1】包的基本知识:

【npm官网】https://www.npmjs.com/
【npm下载包官网】 https://registry.npmjs.org/
【规范包结构】https://yarnpkg.com/zh-Hans/docs/package-json

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【2】开发属于自己的包

【2-1】需要实现的功能
在这里插入图片描述
【2-2】初始化包的基本结构
在这里插入图片描述
【2-3】初始化 package.json

关于更多 license 许可协议相关的内容,可参考 https://www.jianshu.com/p/86251523e898
【注】需要去npm官网搜索查看是否存在该名字的包
在这里插入图片描述

【2-4】在 index.js中定义包的相关功能(如:格式化时间的方法)
在这里插入图片描述
在这里插入图片描述
【2-5】 将不同的功能进行模块化拆分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【2-6】 编写包的说明文档
在这里插入图片描述
在这里插入图片描述

【3】发布包

【3-1】注册 npm 账号https://www.npmjs.com/(建议用谷歌浏览器,Edge校验时图片显示不全)
在这里插入图片描述
【3-2】登录 npm 账号
在这里插入图片描述

【注】npm需要使用官方镜像源发布,不要使用淘宝镜像

//查看镜像源使用状态:
npm get registry
//全局切换镜像源:
npm config set registry http://registry.npm.taobao.org
//全局切换官方镜像源
npm config set registry https://registry.npmjs.org/

在这里插入图片描述

npm i nrm -g
#切换官方镜像源
nrm use npm

在这里插入图片描述
在这里插入图片描述

【3-3】 把包发布到 npm 上(包名没有被占用)

npm login
npm publish
npm unpublish 包名 --force

在这里插入图片描述
【3-4】删除已发布的包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【Dev-sidecar】Github 加速、Stack Overflow 加速、NPM 加速
官方网址:https://github.com/docmirror/dev-sidecar/releases/tag/v1.7.3
备份地址:https://lhnq31mi09.feishu.cn/file/TtW6byRKmoVLqkx1vSycSQjZnzh

4、模块的加载机制

【1】优先从缓存中加载

在这里插入图片描述

【2】内置模块的加载机制

在这里插入图片描述

【3】自定义模块的加载机制

在这里插入图片描述

【4】第三方模块的加载机制

在这里插入图片描述

【5】目录作为模块

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Node.js】模块化: 的相关文章

随机推荐

  • [附源码]JSP+ssm计算机毕业设计校园快递代取接单平台lnqu9【源码、数据库、LW、部署】

    项目运行 项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEcl
  • Java学习笔记之继承(1)

    提到继承 大家可能第一时间会想到继承遗产 Java里的继承虽然不是继承钱 但是也和继承遗产有相似之处 继承遗产一般是说子女辈获得了父辈留下的钱财 物品等 java里的继承是指子类获得了和父类一样的属性 1 类的继承格式 class 父类 q
  • 5个步骤实现目标检测

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文转自 磐创AI 导读 目标检测技术是当今计算机视觉领域的发展趋势 在场景图像和视频中 有许多方法被用来检测物体 在资源和执行时间方面 每种技术都有自己的优势和局限性
  • Python测试驱动开发(TDD)

    Python测试驱动开发 TDD 前言 TDD是一种敏捷开发模式 而不是测试方法 测试很难 难在坚持 一直做下去 现在花时间编写的测试不会立即显出功效 要等到很久以后才有作用 或许几个月之后避免在重构过程中引入问题 或者升级依赖时捕获回归异
  • C++中的字符串的定义方式

    参考大神博客 https blog csdn net ksws0292756 article details 79432329 depth 1 utm source distribute pc relevant none task blog
  • Redis实现点赞功能模块

    功能点设计 统计文章点赞的总数 用户所有文章的点赞数 因此设计的点赞功能模块具有以下功能点 某篇文章的点赞数 用户所有文章的点赞数 用户点赞的文章 持久化到MySQL数据库 数据库设计 1 Redis数据库设计Redis是K V数据库 没有
  • Java if判断语句的用法(一)

    If语句概述和使用格式 1 if语句用于判断不同的条件 根据判断的结果执行不同的代码 2 if语句判断的条件可以是关系运算 逻辑运算 if语句根据逻辑值true false来决定执行不同的代码 3 if语句在开发中使用极为广泛 if语句格式
  • 【华为OD机试真题 JAVA】火锅

    JS版 华为OD机试真题 JS 火锅 标题 火锅 时间限制 1秒 内存限制 262144K 语言限制 不限 入职后 导师会请你吃饭 你选择了火锅 火锅里会在不同时间下很多菜 不同食材要煮不同的时间 才能变得刚好合适 你希望吃到最多的刚好合适
  • 华为OD机试-求满足要求的最长子串

    题目描述 给定一个字符串 只包含字母和数字 按要求找出字符串中的最长 连续 子串的长度 字符串本身是其最长的子串 子串要求 1 只包含1个字母 a z A Z 其余必须是数字 2 字母可以在子串中的任意位置 如果找不到满足要求的子串 如全是
  • @Bean 的用法

    Bean是一个方法级别上的注解 主要用在 Configuration注解的类里 也可以用在 Component注解的类里 添加的bean的id为方法名 定义bean 下面是 Configuration里的一个例子 Configuration
  • 【Vue学习笔记7】Vue3中如何开发组件

    重点学习 vue3 0之组件通信机制defineProps 组件接收外部传来的参数 defineEmits 向组件外部传递参数 1 评级组件第一版 简单的评级需求 只需要一行代码就可以实现 slice 5 rate 10 rate 只需要传
  • 动态规划(最大子序和 && 乘积最大子序列)

    一 最大子序列和 给定一个整数数组 nums 找到一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 示例 输入 2 1 3 4 1 2 1 5 4 输出 6 解释 连续子数组 4 1 2 1 的和最大 为 6 https l
  • 使用三种方法获取远程连接服务器上的文件

    文章目录 概要 alt p sz 使用kettle软件 概要 第一种方法 alt p 第二种方法 sz 第三种方法 使用kettle软件 alt p 在crt连接页面使用快捷键 alt p 打开sftp页面 使用例如 get a txt 获
  • LeetCode(力扣)62. 不同路径Python

    LeetCode62 不同路径 题目链接 代码 题目链接 https leetcode cn problems unique paths 代码 递归 class Solution def uniquePaths self m int n i
  • C++忘记返回值导致异常bug

    问题 在C 函数实现时 定义一个函数如下 bool MCUSerialImpl InitDevInfo devInfo std make shared
  • 【MySQL】不就是多表查询

    前言 嗨 小伙伴们大家好呀 忙碌的一周就要开始 在此之前我们学习的MySQL数据库的各种操作都是在一张表之中 今天我们学习要对多张表进行相关操作 相比较于单一的表来说 多张表操作相对复杂一些 我相信只要认真学习多表查询也不再话下 目录 目录
  • 2023年Python面试题(爬虫)

    爬取数据后使用哪个数据库存储数据的 为什么 MongoDB 是使用比较多的数据库 这里以 MongoDB 为例 大家需要结合自己真实开发环境回答 原因 1 与关系型数据库相比 MongoDB 的优点如下 1 弱一致性 最终一致 更能保证用户
  • Linux DRM框架详解

    Linux DRM框架详解
  • c++ 给定n个十六进制正整数,输出它们对应的八进制数。

    问题描述 给定n个十六进制正整数 输出它们对应的八进制数 输入格式 输入的第一行为一个正整数n 1 lt n lt 10 接下来n行 每行一个由09 大写字母AF组成的字符串 表示要转换的十六进制正整数 每个十六进制数长度不超过100000
  • 【Node.js】模块化:

    文章目录 1 模块化的基本概念 2 Node js 中模块化 1 Node js 中模块的分类 2 加载模块 3 模块作用域 4 向外共享模块作用域中的成员 5 模块化规范 3 npm与包 包 依赖 插件 1 包的基本知识 2 开发属于自己