从节点模块加载模块

模块可以是 required 而不使用相对路径,只需将它们放在名为 node_modules 的特殊目录中即可。

例如,从文件 index.jsrequire 一个名为 foo 的模块,你可以使用以下目录结构:

index.js
 \- node_modules
  \- foo
   |- foo.js
   \- package.json

模块应与 package.json 文件一起放在目录中。package.json 文件的 main 字段应指向模块的入口点 - 这是用户执行 require('your-module') 时导入的文件。如果没有提供,main 默认为 index.js。或者,你可以通过附加 require 调用的相对路径来引用相对于模块的文件:require('your-module/path/to/file')

模块也可以是文件系统层次结构中的 node_modules 目录中的 required。如果我们有以下目录结构:

my-project
\- node_modules
 |- foo   // the foo module
  \- ...
 \- baz   // the baz module
  \- node_modules
   \- bar   // the bar module

我们将能够使用 require('foo')bar 中的任何文件中提取模块 foo

请注意,节点将仅匹配文件系统层次结构中最接近文件的模块,从(文件的当前目录/ node_modules)开始。Node 以这种方式将目录匹配到文件系统根目录。

你可以从 npm 注册表或其他 npm 注册表安装新模块,也可以自己创建。