NodeJS模块加载

时间:2015-10-21 04:15:07

标签: javascript node.js

考虑到这是我的工作目录的文件结构

|-- bower.json
|-- lib
|   |-- foo1.js
|   |-- foo2.js
|   `-- foo3.js
|-- node_modules
|   |-- body-parser
|   |-- bower
|   |-- express
|   `-- md5
|-- package.json
|-- runserver.sh
|-- server.js
`-- test

我应该如何在我写入./lib目录的模块中加载第三方库模块(存在于./node_modules中)?

1 个答案:

答案 0 :(得分:1)

您的require是相对于执行要求的文件。如果您的server.js需要./lib/的内容,那么您可以这样做:

// in ./server.js
var foo1 = require('./lib/foo1'); // file path: resolve relative to this file.

例外是" npm已安装"依赖项,它们位于node_modules目录中,并且不需要文件位置,只需要一个名称:

// in ./server.js
var express = require('express'); // not a file path: find in node_modules

// in ./lib/foo1.js
var express = require('express'); // not a file path: find in node_modules

// in some hypothetical ./lib/extended/secondary/mixin/foo7.js
var express = require('express'); // not a file path: find in node_modules