【Node.js】模块化:

文章目录

        • 1、模块化的基本概念
        • 2、Node.js 中模块化
            • 【1】Node.js 中模块的分类
            • 【2】加载模块
            • 【3】模块作用域
            • 【4】向外共享模块作用域中的成员
            • 【5】模块化规范
        • 3、npm与包(包/依赖/插件)
            • 【1】包的基本知识:
            • 【2】开发属于自己的包
            • 【3】发布包
        • 4、模块的加载机制
            • 【1】优先从缓存中加载
            • 【2】内置模块的加载机制
            • 【3】自定义模块的加载机制
            • 【4】第三方模块的加载机制
            • 【5】目录作为模块


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】目录作为模块

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考 - 系统架构设计师如何备考?文中含资料分享和备考心得

前言 我参加了2022年11月份的《软考-系统架构设计师》考试,在两个多月的备考之中我总结了一些学习经验和答题技巧,现毫无保留的分享给大家,希望对报考的同学们有所帮助。 一、软考的作用 1、以考代评(国企、事业单位、公务员评职…

SpringMvc第六战-【SpringMvcJSON返回异常处理机制】

前言: 小编讲述了:JSR303的概念,应用场景和在具体实例的使用;和拦截器的应用 今天小编来讲述的为cJSON返回&异常处理机制,json返回就不用多说,毕竟大部分数据都是通过Json来传递数据的,异…

常见音视频、流媒体开源编解码库及官网(四十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

请问一下就是业务概念模型和业务逻辑模型有啥关系

请问一下就是业务概念模型和业务逻辑模型有啥关系? 业务概念模型和业务逻辑模型是业务建模的两个关键组成部分,两者密切相关但又有所不同。 1.业务概念模型:这是对业务术语、定义和关系的一种抽象表示。它是从业务专家那里获得的知识&#…

C++基础-类和对象(下)

文章目录 前言一、构造深入1.初始化列表2.隐式类型转换1.隐式类型转换2.explicit 3.委托构造 二、类的静态成员1.静态成员声明2.静态成员定义3.静态成员特性 三、重载运算符和类型转化1.关系及算数运算符重载2.递增递减运算符重载及如何区分3.赋值运算符重载4.重载输入输出运算…

大数据Flink(七十七):SQL窗口的Over Windows

文章目录 SQL窗口的Over Windows 一、​​​​​​​时间区间聚合

选开源还是闭源?2区16天录用!国人友好,期刊指标优秀

在本期分享前,鉴于近期多位作者的困惑,小编想分享开源期刊和闭源期刊的含义、区别、以及如何选择? 概念区别 “开源期刊”即开放存取。简称OA(Open access),是指将学术信息放在互联网上供所有人共享,不需…

我学编程全靠B站了,真香(第一期)

你好,我是Martin。 我是就读于B站大学2020届的Martin同学,反正我学习计算机真的是全靠 B 站了。 我是个刷视频狂魔,B站收藏夹里也收藏了很多编程类视频, 比如C/C、Go语言、操作系统、数据结构和算法、计算机网络、数据库、Pyth…

一阶低通滤波器滞后补偿算法

一阶低通滤波器的推导过程和双线性变换算法请查看下面文章链接: PLC算法系列之数字低通滤波器(离散化方法:双线性变换)_双线性离散化_RXXW_Dor的博客-CSDN博客PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点…

【码银送书第七期】七本考研书籍

八九月的朋友圈刮起了一股晒通知书潮,频频有大佬晒出“研究生入学通知书”,看着让人既羡慕又焦虑。果然应了那句老话——比你优秀的人,还比你努力。 心里痒痒,想考研的技术人儿~别再犹豫了。小编咨询了一大波上岸的大佬&#xff…

Go并发可视化解释 – select语句

上周,我发布了一篇关于如何直观解释Golang中通道(Channel)的文章。如果你对通道仍然感到困惑,请先查看那篇文章。 Go并发可视化解释 — Channel 作为一个快速复习:Partier、Candier和Stringer经营着一家咖啡店。Partie…

php高级 TP+Redis实现发布订阅和消息推送案例实战

Redis 的发布-订阅模型是一种消息通信模式,它允许客户端之间通过特定的频道进行通信。在这种模型中,有些客户端负责发布消息(发布者),而其他客户端则订阅它们感兴趣的频道并接收这些消息(订阅者&#xff09…

games101 作业2

题目 光栅化一个三角形 1. 创建三角形的 2 维 bounding box。 2. 遍历此 bounding box 内的所有像素(使用其整数索引)。然后,使用像素中心的屏幕空间坐标来检查中心点是否在三角形内。 3. 如果在内部,则将其位置处的插值深度值 (…

股东分析报表程序思路

股东分析报表程序思路 (PS. 因为数据是要保密的,所以就不截图全部了) 目录内容 这是统计的所有维度(禁止外传的水印原本文件中是没有的,也是我自己加的) 公司投资原本是用两份需要对比的股东数据excel通过一个软件生成一份股东分析报表,不…

自然语言处理应用(二):自然语言推断

自然语言推断 自然语言推断(Natural Language Inference)是指通过对自然语言文本进行逻辑推理和推断,判断两个句子之间的关系,通常包括三种关系:蕴含(entailment)、矛盾(contradict…

工商银行潍坊分行党建RPA机器人项目解析

01 案例背景:银行业掀起引入RPA加速实现数字化转型的浪潮 近年来,金融科技的蓬勃发展极大促进了银行的业务创新,新技术、新业态层出不穷。随着银行业务和科技的融合逐步落实,银行业务正朝着线上化、智能化转变。科技赋能的转型范…

如何在 Excel 中求平方根

需要在 Excel 中求一个数字的平方根吗?使用几个内置的 Excel 函数和公式可以轻松计算平方根。在本分步指南中,您将学习在 Excel 中计算平方根的 5 种不同方法,包括使用 SQRT 函数、POWER 函数、指数公式、VBA 代码和 Power Query。跟随教程&a…

华为云云耀云服务器L实例评测|基于L实例使用Docker部署MySQL服务并连接MySQL—phpMyAdmin管理工具

文章目录 一、云耀云服务器产品优势1、智能不卡顿2、价优随心用3、上手更简单4、管理更省心 二、远程连接云耀云服务器L实例三、安装Docker、docker-compse1、docker安装2、docker-compose安装 四、方法① 使用Docker安装部署MySQL服务五、方法② 使用docker-compse安装部署MyS…

Maven常见面试题总结

Maven简介 Maven 是一个项目管理和整合工具。Maven 包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期管理系统(Project Lifecycle Management System),一个依赖管理系统(Dependency Management System)&#x…

C语言天花板——指针(初阶)

🌠🌠🌠 大家在刚刚接触C语言的时候就肯定听说过,指针的重要性以及难度等级,以至于经常“谈虎色变”,但是今天我来带大家走进指针的奇妙世界。🎇🎇🎇 一、什么是指针&…