Node.js(npm)访问已安装模块中的文件
我正在实现一个Node模块,我希望用户可以select性地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
来允许这个“function”?
改变你的模块结构:
./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安装包),所以你不应该无论如何都要使用它。