当前位置: 首页 > news >正文

Nodejs系列之模块加载机制

文章の目录

  • 1、当模块拥有路径但没有后缀时
  • 2、当模块没有路径且没有后缀时
  • 写在最后


1、当模块拥有路径但没有后缀时

require("./find.js");
require("./find");
  1. require 方法根据模块路径查找模块,如果是完整路径,直接引入模块;
  2. 如果后缀省略,先找同名的JS文件再找同名JS文件夹;
  3. 如果找到了同名的文件夹,找文件夹中的index.js;
  4. 如果文件夹中没有index.js就会去当前文件夹中的 package.json 文件中查找 main 选项中的入口文件;
  5. 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到;

2、当模块没有路径且没有后缀时

require("find");
  1. nodejs会假设它是系统模块;
  2. nodejs会去node_modules文件夹中;
  3. 首先看是否有该名字的JS文件;
  4. 再看是否有该名字的文件夹;
  5. 如果是文件夹看里面是否有index.js;
  6. 如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件;
  7. 否则找不到报错;

写在最后

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

相关文章:

  • MyBatis 查询数据库入门
  • LQ0026 修剪灌木【数学】
  • 重识Nginx - 02 手把手教你编译适合自己的nginx 1.22.0
  • Java泛型详解
  • opencv连通域标记 connectedComponentsWithStats()函数
  • 【C#在资源管理器中显示自定义文件格式的缩略图】
  • 【NLP】第2章 开始使用 Transformer 模型的架构
  • 电容的分类
  • MYBatis-Plus常用注解@TableName、@TableId、@TableField、@TableLogic
  • 沉睡者IT - 贡献者和律师的Web3指南:充分去中心化
  • unityEditor扩展开发onGUI添加右键菜单
  • 认识 fcntl 接口函数
  • a16z:呼吁SEC改革加密资产托管规则的建议
  • 通过虚拟代理服务器解决Axios跨域问题[Vue.js项目实践: 新冠自检系统]
  • 【JavaScript-动画原理】如何使用js进行动画效果的实现
  • SegmentFault for Android 3.0 发布
  • 收藏网友的 源程序下载网
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【RocksDB】TransactionDB源码分析
  • 【剑指offer】让抽象问题具体化
  • CAP 一致性协议及应用解析
  • co.js - 让异步代码同步化
  • es6要点
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • React as a UI Runtime(五、列表)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue学习系列(二)vue-cli
  • windows下使用nginx调试简介
  • 动态规划入门(以爬楼梯为例)
  • 猴子数据域名防封接口降低小说被封的风险
  • 如何选择开源的机器学习框架?
  • 我有几个粽子,和一个故事
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​io --- 处理流的核心工具​
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • ./configure、make、make install 命令
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET Framework杂记
  • .net 调用php,php 调用.net com组件 --
  • .NET 解决重复提交问题
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net中的设计模式——Factory Method模式
  • .ui文件相关
  • /var/log/cvslog 太大
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @FeignClient注解,fallback和fallbackFactory
  • [ C++ ] STL---string类的模拟实现
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116