【发布时间】:2018-06-22 07:35:58
【问题描述】:
一段时间以来,我一直在想一个愚蠢的问题:
require("moduleName") 是如何工作的?
我知道如果我的项目中有一个文件moduleA.js,我可以使用require("./moduleA") 加载模块。但是对于express、lodash等很多“知名库”,我不需要显式写出is库所在的相对路径。相反,我只使用模块名称(例如require('lodash');)。我的问题是:它是如何工作的?我怎样才能让我自己的模块以这种方式工作,无需编写路径就可以全局加载模块(例如require('moduleA'))。
谢谢
【问题讨论】:
-
这是一个非常重要的问题,RisingStack 工程师有一个good blog post on this,其中详细介绍了 Node (CommonJS) 中的模块系统如何工作。
标签: javascript node.js commonjs