可以把程序和库放到一个单独的目录,然后提供一个单一的入口来指向它。
把目录递给 require()
作为一个参数,有三种方式。
第一种方式是在根目录下创建一个 [package.json
] 文件,并指定一个 main
模块。
例子,[package.json
] 文件类似:
{ "name" : "some-library",
"main" : "./lib/some-library.js" }
如果这是在 ./some-library
目录中,则 require('./some-library')
会试图加载 ./some-library/lib/some-library.js
。
这就是 Node.js 处理 package.json
文件的方式。
如果目录里没有 [package.json
] 文件,或者 ["main"
] 入口不存在或无法解析,则 Node.js 将会试图加载目录下的 index.js
或 index.node
文件。
例如,如果前面的例子中没有 [package.json
] 文件,则 require('./some-library')
会试图加载:
./some-library/index.js
./some-library/index.node
如果这些尝试失败,则 Node.js 将会使用默认错误报告整个模块的缺失:
Error: Cannot find module 'some-library'