【Node.js】模块化:

news2024/12/29 10:13:38

文章目录

        • 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.coloradmin.cn/o/1009773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在网站标题中使用可以让搜索引擎更容易(识别网站的主要内容)

随着互联网的飞速发展,越来越多的企业开始重视网站的优化。优化网站排名不仅可以增加曝光率和点击率,也可以提高品牌知名度和销售额。本文将从关键字优化方案入手,为大家详细介绍如何提升网站排名。 什么是关键字? 关键字是指用…

ChatGPT 网站合集/NovelAI tag生成器/Novel资源大全

ChatGPT 网站合集 https://github.com/xx025/carrot NovelAI tag生成器 https://wolfchen.top/tag/ Novel资源大全 https://wolfchen.top/tag/doc.html 简单地说,Stable Diffusion被修改后做出了NovelAI,NovelAI离家出走便有了Naifu Naifu简单好上手&am…

Java多线程篇(2)——mesi与内存屏障与volatile

文章目录 CPU高速缓存高速缓存storeBufferinvalidate message queue JMM 内存屏障volatile CPU高速缓存 高速缓存 每个cpu核心都有自己的高速缓存,结构如下 有缓存必有一致性问题,CPU0和CPU1之间的缓存是如何保持一致的。比较常见的一种做法就是 MESI…

mysql convert函数 解决读取double为科学计数法问题

convert顾名思义就是转化, cast差不多 MySQL CONVERT() 函数 | 参考手册 为什么需要这个函数? mysql是弱类型的 where stringcol1 and intcol1 都行 会自动转化,那我为什么还要呢? mysql有个类型是double ,基本没人…

第二本书交稿了

大家好,我是飞哥! 就在刚刚,我把新书的markdown源文件提交给出版社老师了,也就是说新书正式交稿了! 上一本咱们书咱们写的是Linux网络方面的,书名是《深入理解Linux网络》。 咱们这本书帮助很多之前惧怕内核…

美东一公司的郁闷面试题

说是题目可以用不同的语言,但是貌似 Java 是多线程的,用 Java 写肯定容易不少。 但,觉得这个题目用多线程简直是有点脱了裤子放屁。 完整题目内容 题目的网站内容如下: Please complete the following challenge in one of th…

使用这款免费的洗稿软件究竟是好还是坏

嘿,大家好!今天,我们要聊一聊一个备受争议的话题:洗稿软件(147SEO改写软件)。这些软件声称可以帮助你在写作时省下不少功夫,但究竟是好还是坏呢? 咱们都知道,写作是一门艺术,也是一项…

华策影视AIGC工程师招聘; 百度大模型创业松;主流大语言模型的技术原理细节;AIGC Prompt的七个缺陷 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🎯 华策影视AIGC工程师招聘,AIGC在「文娱领域」的真正落地 逛即刻时发现关注的AI博主 杨昌 发布了自己公司的招聘信息&#x…

Postgresql中检测内存越界或use after free的简便方法

1 使用场景 在Postgresql的内存管理模块中,最常用的aset.c提供的内存池实现,该实现提供了两个非常实用的开关来解决常见的内存越界问题: memdebug.c * About CLOBBER_FREED_MEMORY:** If this symbol is defined, all freed memory is over…

git之工作中实际应用篇(非常适合刚到公司上班但是git不太熟又不好意思问同事的友友)

目录 前言当你刚到一个公司写代码,交自己的分支提交并推送了代码,但是有所更改第二天拉取代码切换分支远程分支太多&&本地仓库太多checkout检出失败的情况未完待续 前言 此篇用于记录笔者在工作中用到git遇到的问题及大部分的操作。 区别于理论…

无涯教程-JavaScript - FALSE函数

描述 FALSE函数返回逻辑值FALSE。 语法 FALSE () 争论 FALSE函数没有参数。 Notes 您还可以在工作表或公式中直接键入FALSE单词,Microsoft Excel会将其解释为逻辑值FALSE。 提供FALSE功能主要是为了与其他电子表格程序兼容。 适用性 Excel 2007,Excel 2010,Excel 2013…

【用unity实现100个游戏之11】复刻经典mirror消消乐游戏

文章目录 前言开始项目开始一、方块网格生成二、方块交换三、添加交换的动画效果四、水平消除检测五、垂直消除检测六、完善删除功能七、效果优化(移动方块后再进行消除检测)八、方块下落十、方块填充十一、后续 源码参考完结 前言 欢迎来到经典消消乐游…

数据清洗:数据挖掘的前期准备工作

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

释放潜能!RunnerGo:性能测试的全新视角

在数字化时代,性能测试已成为企业持续发展的关键一环。但面对繁杂的工具和流程,很多企业却陷入了无从选择的困境。现在,一款名为RunnerGo的全新性能测试工具正悄然崭露头角。 RunnerGo,一款由国内开发者自主研发的全栈式性能测试…

最新模块化设计小程序系统源码完整版:开源可二开,支持DIY

随着互联网的快速发展,小程序已成为各行各业开展业务的重要工具。而模块化设计小程序系统源码完整版则是一种高效、灵活、易维护的解决方案。 分享一个最新的模块化设计小程序系统源码完整版,源码开源可二开,支持自由DIY设计,含完…

华为云新用户:定义,优惠券及专享活动

在当今的数字化时代,云计算已成为企业与个人的必备服务。华为云,作为全球领先的云计算服务提供商,吸引了众多新用户的关注。本文将详细介绍华为云新用户的定义、优惠券及专享活动相关内容,帮助大家更好地了解华为云新用户优惠政策…

win10win11截图技巧——不用安装其他截图工具或者运行其他截图工具,就可以截图,win10和win11可用

快捷键shift wins可以调出来windows自带的截图工具。 测试了一下win10和win11都可以用。 可以截图的方式有: 1,全屏截图, 2,窗口截图, 3,任意截图, 4,画矩形截图 以下内容来自…

算法竞赛入门【码蹄集新手村600题】(MT1280-1300)C语言

算法竞赛入门【码蹄集新手村600题】(MT1280-1300)C语言 目录MT1281 N的M次方MT1282 Disarium数MT1283 区间Disarium数MT1284 快乐数MT1285 忠实数MT1286 忠实数序列MT1287 ASCII值MT1288 谁在说谎MT1289 调和级数不等式MT1290 级数MT1291 级数IIMT1292 某级数MT1293…

一百七十七、Hive——海豚调度执行Hive的.sql文件

一、目的 对于Hive数仓,每一层的建库建表SQL语句都各自放在一个.sql文件里,然后用海豚调度执行一下Hive的.sql文件 二、实施步骤 (一)第一步,上传.sql文件到海豚调度器上 (二)第二步&#xf…

分享一个java技术开发的springboot线上问卷调查可视化系统源码 lw 调试

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…