我正在实现一个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"
}
注意:为清晰起见,省略了不必要的密钥,例如:dependencies
,keywords
,author
等。
如何修改package.json
以允许此“功能”?
答案 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安装包例如),所以你不应该使用它。