【Node.js】模块化:

文章目录


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需要使用官方镜像源发布,不要使用淘宝镜像

bash 复制代码
//查看镜像源使用状态:
npm get registry
//全局切换镜像源:
npm config set registry http://registry.npm.taobao.org
//全局切换官方镜像源
npm config set registry https://registry.npmjs.org/
bash 复制代码
npm i nrm -g
#切换官方镜像源
nrm use npm


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

bash 复制代码
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】目录作为模块
相关推荐
Rain50914 小时前
2.2 数据基础:数据库集成与 ORM(TypeORM / Prisma)
数据库·人工智能·ai·数据分析·node.js·自动化·ai编程
大家的林语冰14 小时前
npm 不忍了,正式上线“阶段式发布“的新功能,进一步对抗频繁的供应链攻击!
前端·javascript·node.js
天蓝色的鱼鱼16 小时前
Node.js 现在能直接跑 TypeScript 了,tsx 和 ts-node 还需要吗?
前端·typescript·node.js
Rain50917 小时前
2.3. 安全配置:环境变量与 API 密钥管理
前端·人工智能·后端·安全·ai·node.js·ai编程
小葛要努力18 小时前
安装nvm 管理node.js版本实现vue2和vue3项目共存
node.js·vue·nvm
weixin_571667411 天前
[解决] Node.js 安装后 命令找不到
node.js
孜孜不倦不忘初心1 天前
mac安装nvm及问题记录
前端·node.js
快乐的哈士奇2 天前
Gmail-邮件自动处理系统
node.js·自动化·excel
星空2 天前
Node.js (Express) + Vue2 Axios 前后端交互 CRUD
vue.js·node.js·express
云浪2 天前
别再让用户干等了:用 Express + SSE 实现《红楼梦》AI 问答实时输出
javascript·后端·node.js