Node.js(npm)访问已安装模块内的文件

时间:2014-03-06 07:18:17

标签: node.js npm

我正在实现一个Node模块,我希望用户可以选择require部分文件作为模块的一部分。例如:

var M = require('my-module');
var Foo = require('my-module/foo');

考虑到我的模块结构是这样的:

./my-module
  +- lib
  |  +- foo
  |  |  +- index.js
  |  +- index.js
  +- package.json

这是基本的package.json文件:

{
  "name": "my-module",
  "version": "0.0.1",
  "description": "My very own super fun module.",
  "main": "lib/index.js"
}

注意:为清晰起见,省略了不必要的密钥,例如:dependencieskeywordsauthor等。

如何修改package.json以允许此“功能”?

1 个答案:

答案 0 :(得分:4)

将模块结构更改为:

./my-module
  +- lib
  |  +- foo
  |  |  +- index.js
  |  +- index.js
  +- index.js
  +- foo.js
  +- package.json

甚至更好,像大多数模块一样将require('my-module/foo')更改为require('my-module').Foo

在package.json中设置main是一件错误的事情(因为package.json是npm自己的元数据,不应该与node.js有任何关系,请考虑从bower安装包例如),所以你不应该使用它。