让我们说,我有一个entry.js文件entry.js
var t = require('./test'); //it can be file or folder module
如果我在与entry.js相同的包中有一个名为“test”的文件夹和文件,那么执行将如何发生,因为它们具有相同的名称?哪个模块具有最高优先级?
答案 0 :(得分:2)
检查优先级将是下一个:
来源:
https://nodejs.org/api/modules.html#modules_file_modules https://nodejs.org/api/modules.html#modules_folders_as_modules
答案 1 :(得分:1)
Frome reqire
的文档:
一旦Node.js找到node_modules文件夹,它就会尝试加载 给定模块作为(.js)Javascript文件或作为命名子目录 并且,如果找到命名的子目录,则它将尝试加载该文件 以各种方式。因此,例如,如果您发出加载模块的请求,请“test”:
var utils = require( "test" );
... Node.js将对“node_modules”执行分层目录搜索 并通过以下方式“测试”:
./node_modules/test.js ./node_modules/test/index.js ./node_modules/test/package.json
所以,答案是:File
首先,Directory
秒,Module
第三。
答案 2 :(得分:1)
这种情况下的优先级(文件夹与文件)将根据package.json
而有所不同案例1: -
如果你在package.json中提到了一个正确的js文件路径, 那么"测试"里面的js文件文件夹模块将执行。
案例2: -
假设您在测试文件夹中没有任何package.json。 然后test.js文件将执行。
案例3: -
如果你没有test.js文件和test.json文件在test文件夹中,那么文件夹模块中的默认文件(index.js)将会执行。