node学习--路径加载机制
自己随笔,方便自己查阅,希望批评指正。
require函数支持斜杠(/)或盘符(C:)开头的绝对路径,也支持./开头的相对路径。一下还分为几种情况:
1.加载内置模块
不需要路径,直接加载。
例如:
require(“fs”); require("path"); require("http"); ......
2.如果NodeJS定义了一个特殊的node_modules目录用于存放模块。
例如某个模块的绝对路径是/main/sub/1.js,在该模块中使用require('foo/bar')方式加载模块时,则NodeJS依次尝试使用以下路径去加载foo/bar.js这个模块。
/main/sub/node_modules/foo/bar
/main/node_modules/foo/bar
/node_modules/foo/bar
3.包管理
如果将很多js的文件在一个文件下(app),将app称为包,下面比如有 1.js 2.js main.js ,其中 main.js 加载 1.js 2.js 。如果别的模块想加载main.js,会写很长的加载路径,不如直接加载app.
package.json 文件里,配置依赖。
{ "name": "app", "main": "./main.js" }
node.js的requirejs会尝试从 app/main.js去加载 ,别的模块可以加载app这个模块,require(./app),这里默认的都是同级目录。

浙公网安备 33010602011771号