在节点js中,require()在哪里搜索index.js?

时间:2020-07-07 11:51:05

标签: javascript node.js npm package

我试图了解nodejs项目中文件夹的层次结构。 我知道,如果您在 node_modules foo 文件夹中有一个 index.js ,并且您调用require('foo'),它将返回 index.js 。好吧。

我的问题是:例如,当我(例如)从npm下载'underscore'软件包时,它在 node_modules 中创建了一个underscore文件夹,其中包含一些js文件。 。 index.js 在undersocre文件夹内的另一个文件夹中,称为模块(有 index.js index-all.js )。 Index.js 是否不应该位于'modules'文件夹之外?

1 个答案:

答案 0 :(得分:0)

https://nodejs.org/api/modules.html#modules_all_together中描述了nodejs中require()的整个加载逻辑。

在使用下划线的情况下,存在一个package.json文件,其中包含一个main入口点,告诉它运行underscore.js作为该模块的入口点(使用时) require()进行加载。