从节点模块加载模块
模块可以是 required 而不使用相对路径,只需将它们放在名为 node_modules 的特殊目录中即可。
例如,从文件 index.js 到 require 一个名为 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 注册表安装新模块,也可以自己创建。