代码的组织和部署
模块路径解析规则 源链接 我们知道的 require 函数支持的两种路径有: 以 / 或者 C: 开头的绝对路径 以 ./ 开头的相对路径。 以上路径的缺点是: 使得模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其它模块的代码也需要跟着调整,变得牵一发动全身。 下面来了解一下 require 支持的第三种形式的路径,写法类似于 foo/bar ,按照一下规则解析,直到找到模块位置。 内置模块 遇到NodeJs的内置模块,不做解析,直接返回内置模块导出的对象。 node_modules目录 node_modules 目录是NodeJs定义的用于存放模块的。 当require('foo/bar')时,NodeJs依次尝试一下路径: /home/user/node_modules/foo/bar /home/node_modules/foo/bar /node_modules/foo/bar NODE_PATH环境变量 与PATH环境变量类似,NodeJS允许通过 NODE_PATH 环境变量来指定额外的模块搜索路径。 NODE_PATH 环境变量中包含一到多个目录路径,路径之间在Linux下使用":"分隔,在Windows下使用";"分隔。例如定义了以下 NODE_PATH 环境变量: NODE_PATH=/home/user/lib:/home/lib