Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定从运行的node.js应用程序中使用的NPM模块_Node.js_Npm - Fatal编程技术网

确定从运行的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