通过node执行该文件,会发现报错信息如下。cmd和amd规范也都是依赖自执行函数实现的。new Function接收的是一个要执行的字符串,返回的是一个新的函数,调用这个新的函数字符串就会执行了。node存在一个vm虚拟环境的概念,用来运行额外的js文件,他可以保证javascript执行的独立性,不会被外部所影响。用于处理文件路径。常用方法有readFile和readFileSync,分别是异步读取文件和同步读取文件。_extensions用于针对不同的模块扩展名使用不同的加载方式,比如JSON和javascript加载方式肯定是不同的。然后通过new Module实例化的方式创建module对象,将模块的绝对路径存储在module的id属性中,在module中创建exports属性为一个json对象。

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解

require加载器实现原理的深入理解