模块是一门语言编写大项目的基石,因此,了解如何组织、编写、编译、加载模块很重要。这里主要谈谈Node中的模块加载。
Node中的模块,主要使用require来加载。
但凡编程语言加载模块,都需要知道模块的位置。加载系统模块,一般不会出问题,主要谈谈加载文件型模块。
文件模块的加载,主要依赖于文件或文件夹的位置。看具体实例:
require("./") --- 加载本文件夹下面的package.json,如果没有,则加载index.js、index.node
require("some.js") --加载本文件夹下面的some.js文件
require("lib/some.js") --加载lib/some.js文件
require("modulename") --加载当前目录node_modules/modulename文件夹内的package.json,如果没有,则加载index.js、index.node。如果当前目录找不到以上内容,则进入指定全局模块缓存目录中加载modulename文件夹中的内容,如还未找到,则进入系统环境变量NODE_PATH指定的路径中加载modulename文件夹内的内容。涉及到的目录,请参看npm路径设置。
目前仅列出以上方式,其他方式,请细读require的源代码。
create by twkun
2013-12-13
2013-12-13