node 模块加载顺序

模块加载过程

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

packge.json查找过程

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容