除了package.json在项目根目录中获取文件之外,还有一种方法可以确定正在运行的node.js应用程序的依赖项列表吗?节点是否将此元信息保留为全局命名空间中的某些var?
如果您只是在应用程序目录中查找当前安装的npm软件包,则可以安装npm软件包(npm install -g npm)并以编程方式调用ls以列出已安装的软件包和依赖关系树.
显然,这与所安装的软件包是否真正require在应用程序中无关.
用法不是很好记录,但这应该让你开始.
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
});
});
Run Code Online (Sandbox Code Playgroud)
例如:
{ dependencies:
{ npm: { version: '1.1.18', dependencies: [Object] },
request: { version: '2.9.202' } } }
Run Code Online (Sandbox Code Playgroud)
否则,我认为唯一的另一个选择是内省module模块以获取有关当前加载/缓存的模块路径的信息.然而,这绝对不是作为公共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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |