node 模块加载顺序

模块加载过程

尽管Node模块系统的本质简单直接,但还是有 点需要注意一下。
第一,如果模块是目录,在模块目录中定义模块的文件必须被命名为index.js,除非你在这个目录下一个叫package.json的文件里特别指明。要指定一个取代index.js的文件,package.json文件里必须有一个用JavaScript对象表示法(JSON)数据定义的对象,其中有一个名为main的键,指明模块目录内主文件的路径。

packge.json查找过程

还有一点需要注意的是,Node能把模块作为对象缓存起来。如果程序中的 个文件引入了相同的模块,第一个文件会把模块返回的数据存到程序的内存中,这样第二个文件就不用再去访问和计算模块的源文件了。实际上第二个引入有机会修改缓存的数据。这种“ 猴子补丁 ”(monkey patching)让一个模块可以改变另一个模块的行为,开发人员可以不用创建它的新版本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Node在当前目录下查找package.json(CommonJS包规范定义的包描述文件),通过JSON.pars...
    勿忘巛心安阅读 1,715评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,064评论 19 139
  • 1 Node.js模块的实现# 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都...
    七寸知架构阅读 6,246评论 1 50
  • 1 Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着...
    zlx_2017阅读 5,180评论 0 1
  • 世间最好的东西,莫过于有几个头脑和心地都很正直的严正的朋友。——爱因斯坦 朋友圈,在我眼里,本来是分享生活点滴或是...
    Boringnotebook阅读 4,276评论 0 0

友情链接更多精彩内容