在node.js中获取模块的名称 [英] Getting name of a module in node.js

查看:226
本文介绍了在node.js中获取模块的名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人知道如何在node.js / javascript中获取模块的名称

Does anyone know how to get the name of a module in node.js / javascript

所以假设你这样做

var RandomModule = require ("fs")
.
.
.
console.log (RandomModule.name)
// -> "fs"


推荐答案

如果您正在尝试跟踪您的依赖项,你可以尝试使用require hooks。

If you are trying to trace your dependencies, you can try using require hooks.

创建一个名为 myRequireHook.js的文件

var Module = require('module');
var originalRequire = Module.prototype.require;
Module.prototype.require = function(path) {
    console.log('*** Importing lib ' + path + ' from module ' + this.filename);
    return originalRequire(path);
};

此代码将挂钩每个 require 电话和将它记录到你的控制台。

This code will hook every require call and log it into your console.

不完全是你先问的,但也许它可以帮助你更好。

Not exactly what you asked first, but maybe it helps you better.

而且你需要在你的主.js文件中调用一次(你开始使用节点main.js )。

And you need to call just once in your main .js file (the one you start with node main.js).

所以在你的 main.js 中,你就是这样做的:

So in your main.js, you just do that:

require('./myRequireHook');
var fs = require('fs');
var myOtherModule = require('./myOtherModule');

它将在您的其他模块中跟踪 require 还有。

It will trace require in your other modules as well.

这是转发器喜欢的方式 babel 工作。他们挂钩每个 require 调用并在加载前转换代码。

This is the way transpilers like babel work. They hook every require call and transform your code before load.

这篇关于在node.js中获取模块的名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆