最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何枚举模块中的包依赖项?

IT培训 admin 9浏览 0评论

如何枚举模块中的包依赖项?

伙计我一直在编写一个node_module,它给你你选择的模块的依赖关系,所以有我的代码

function depend(modulename, cb) {
let package = JSON.parse(fs.readFileSync("./node_modules/"+modulename+'/package.json', "utf8"));
var re = 'CHECKING' ? package.dependencies : 'The module has no dependencies';
cb(re)  
}

const fs = require('fs');

module.exports = depend;

当我运行它它在一个模块没有模块它给我{}而不是The module has no dependencies,所以任何想法?

回答如下:

var re = 'CHECKING' ? package.dependencies : 'The module has no dependencies';是一个ternary。

这意味着:

如果'CHECKING'然后将package.dependencies分配给re,否则将'The module has no dependencies'分配给re

这是你的错误,if ('CHECKING')将始终评估为true所以它将始终将package.dependencies分配给re。您必须将代码重构为以下内容:

var re = Object.keys(package.dependencies).length > 0 ? package.dependencies : 'The module has no dependencies';

这将测试package.dependencies是否具有一个或多个依赖关系,以便影响re的正确值。我们不在length上使用package.dependencies,因为它是一个没有任何length属性的对象,而是使用Object.keys

在评论中提供的第二个示例中,if (package.dependencies)也将始终评估为true,因为package.dependencies不为null或未定义,因此它被认为是true

如何枚举模块中的包依赖项?

伙计我一直在编写一个node_module,它给你你选择的模块的依赖关系,所以有我的代码

function depend(modulename, cb) {
let package = JSON.parse(fs.readFileSync("./node_modules/"+modulename+'/package.json', "utf8"));
var re = 'CHECKING' ? package.dependencies : 'The module has no dependencies';
cb(re)  
}

const fs = require('fs');

module.exports = depend;

当我运行它它在一个模块没有模块它给我{}而不是The module has no dependencies,所以任何想法?

回答如下:

var re = 'CHECKING' ? package.dependencies : 'The module has no dependencies';是一个ternary。

这意味着:

如果'CHECKING'然后将package.dependencies分配给re,否则将'The module has no dependencies'分配给re

这是你的错误,if ('CHECKING')将始终评估为true所以它将始终将package.dependencies分配给re。您必须将代码重构为以下内容:

var re = Object.keys(package.dependencies).length > 0 ? package.dependencies : 'The module has no dependencies';

这将测试package.dependencies是否具有一个或多个依赖关系,以便影响re的正确值。我们不在length上使用package.dependencies,因为它是一个没有任何length属性的对象,而是使用Object.keys

在评论中提供的第二个示例中,if (package.dependencies)也将始终评估为true,因为package.dependencies不为null或未定义,因此它被认为是true

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论