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),这里默认的都是同级目录。

posted @ 2017-07-10 16:30  风起了--  阅读(168)  评论(0)    收藏  举报