从节点模块加载模块
模块可以是 require
d 而不使用相对路径,只需将它们放在名为 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
目录中的 require
d。如果我们有以下目录结构:
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 注册表安装新模块,也可以自己创建。