学习笔记—Node中模块查找机制
2021/11/24 9:10:26
本文主要是介绍学习笔记—Node中模块查找机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
日常的学习笔记,包括 ES6、Promise、Node.js、Webpack、http 原理、Vue全家桶,后续可能还会继续更新 Typescript、Vue3 和 常见的面试题 等等。
在学习其他模块之前,我们先要清楚 文件模块中的查找规范机制 。
自定义模块查找规范
引用自定义模块时,会自动查找目标目录下的 index.js文件 。
// /jQuery/index.js module.exports = "jquery" // /main.js const jQuery = require('./jQuery') console.log(jQuery); // jquery
但是如果我们不去定义 index.js,则会出现无法查找文件的问题,也就是报错。
// /jQuery/a.js module.exports = "jquery" // /main.js const jQuery = require('./jQuery') console.log(jQuery); // Cannot find module './jQuery'
这样我们就需要一个描述文件 package.json
,在文件中有一个 main
属性,可以定义文件入口。
// /jQuery/package.json { "main":"./jQuery/a.js" }
这样我们再重新打印,发现结果被成功打印了出来。
所以我们可以总结一下文件模块的 查找规范:
- 在 最新的node版本中,默认 先查找同名文件 。如果没找到,则尝试添加查找 .js和.json文件 。如果还是没有,会查找 同名文件夹(当成了一个包),找到后,会先找 package.json文件。如果没有,则会继续查找 index.js文件。如果依旧不存在,则会报错。
- 在 老版本的node中, 如果 有package.json 的情况下,会先找同名包。如果 没有package.json,会去 查找同名文件。
// 新版node查找流程 │ └───┤ 同名文件 │ │──┤ 同名.js / 同名.json │ │──┤ 同名文件夹 │ │───┤ pageage.json │ └───┤ index.js 都没找到,则抛出一个错误。
这就是node的自定义模块查找规范,我们在平时面试的时候可能会遇到这种问题。
比如介绍一下 node的模块查找机制,我们就可以用这种方式去介绍。(目前一般很少有问老版本node的查找机制,一般都会问两种查找机制的区别,感兴趣的可以去查阅相关资料。)
本篇文章由莫小尚创作,文章中如有任何问题和纰漏,欢迎您的指正与交流。
您也可以关注我的 个人站点、博客园 和 掘金,我会在文章产出后同步上传到这些平台上。
最后感谢您的支持!
这篇关于学习笔记—Node中模块查找机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程