在Node.js中,模块如何从应用程序的package.json中获取数据?

dyl*_*zed 7 json node.js npm

我有一个模块.在其中,我想从我父应用程序的package.json文件中访问数据.这样做的最佳做法是什么?

我通过上升2级并需要文件(或使用nconf配置加载器)来做到这一点.

var appdir = path.resolve(__dirname, '../../');
nconf.file('app', path.join(appdir, 'package.json'));
Run Code Online (Sandbox Code Playgroud)

但这似乎很容易破裂.

我也听说过pkginfo,它会自动从我自己的模块的package.json中获取信息,但我希望从父应用程序中获取数据.

谢谢你的帮助!

编辑:我想另一种问的方式是,我如何获得应用程序的路径(而不是模块路径)?

prc*_*rcu 4

您可以使用

require.main.require './package'
Run Code Online (Sandbox Code Playgroud)

但只有当您的父应用程序的文件位于其目录的根目录中时,它才有效。

您也可以将其包装try ... catch并添加../到路径中,直到找到package.json.

您可以在此处阅读有关访问主模块的更多信息http://nodejs.org/api/modules.html#modules_accessing_the_main_module