确定从运行的node.js应用程序中使用的NPM模块
除了在项目根目录中获取确定从运行的node.js应用程序中使用的NPM模块,node.js,npm,Node.js,Npm,除了在项目根目录中获取package.json文件外,还有什么方法可以确定正在运行的node.js应用程序的依赖项列表?节点是否将此元信息作为全局命名空间中的某个变量保持可用?如果您只是在应用程序目录中查找当前安装的npm包,则可以安装包(npm install-g npm)并调用以列出已安装的包和依赖关系树 显然,这与安装的软件包是否在应用程序中实际是require'd无关 用法没有很好的文档记录,但这应该让您开始 var npm = require('npm'); npm.load(fun
package.json
文件外,还有什么方法可以确定正在运行的node.js应用程序的依赖项列表?节点是否将此元信息作为全局命名空间中的某个变量保持可用?如果您只是在应用程序目录中查找当前安装的npm包,则可以安装包(npm install-g npm
)并调用以列出已安装的包和依赖关系树
显然,这与安装的软件包是否在应用程序中实际是require
'd无关
用法没有很好的文档记录,但这应该让您开始
var npm = require('npm');
npm.load(function(err, npm) {
npm.commands.ls([], true, function(err, data, lite) {
console.log(data); //or lite for simplified output
});
});
e、 g:
否则,我认为唯一的其他选择是内省模块,以获取与当前加载/缓存的模块路径相关的信息。然而,这显然不是作为公共API开发的。我不确定是否有其他选择,所以我很想知道是否有
var req = require('request'); // require some module for demo purposes
var m = require('module');
// properties of m contain current loaded module info, e.g. m._cache
我相信你可以用,哪种作品根据(可能会错过一些)。你可以在11点55分听到这个
或者您可以尝试James,它可能会更好地发现您的依赖关系(但不是通过运行代码),而是因为Javascript的动态特性(12:46)
侦探
查找对require()的所有调用,无论使用
正确的步行方式
附言:要将那些package.json变量公开给node.js,您可以使用这看起来是可行的。我将把这个问题留一段时间,看看其他人是否有建议。谢谢也可能值得在node.js IRC频道上询问。。
var req = require('request'); // require some module for demo purposes
var m = require('module');
// properties of m contain current loaded module info, e.g. m._cache