Skip to content

Latest commit

 

History

History
37 lines (32 loc) · 1.47 KB

section5.5.md

File metadata and controls

37 lines (32 loc) · 1.47 KB

Section 5.5: Module loading from node_modules

Modules can be require d without using relative paths by putting them in a special directory called node_modules . For example, to require a module called foo from a file index.js , you can use the following directory structure:

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

Modules should be placed inside a directory, along with a package.json file. The main field of the package.json file should point to the entry point for your module--this is the file that is imported when users do require('your-module') . main defaults to index.js if not provided. Alternatively, you can refer to files relative to your module simply by appending the relative path to the require call: require('your-module/path/ to/file') .Modules can also be require d from node_modules directories up the file system hierarchy. If we have the following directory structure:

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

we will be able to require the module foo from any file within bar using require ('foo') . Note that node will only match the module that is closest to the file in the filesystem hierarchy, starting from (the file's current directory/node_modules). Node matches directories this way up to the file system root. You can either install new modules from the npm registry or other npm registries, or make your own.