NodeJS中的文件模块与文件夹模块
比方说,我有一个entry.js文件entry.js
var t = require('./test'); //it can be file or folder module
如果我在与entry.js相同的包中有一个名为“test”的文件夹和一个文件,执行过程如何,因为两者具有相同的名称? 哪个模块具有最高优先级?
这种情况下的优先级(文件夹vs文件)将根据package.json而有所不同
情况1:-
如果你在package.json中提到了一个合适的js文件path,那么将会执行“test”文件夹模块中的js文件。
案例2: –
假设您在testing文件夹中没有任何package.json。 那么test.js文件将会执行。
案例3: –
如果test文件夹中没有test.js文件和package.json文件,则会执行文件夹模块中的默认文件(index.js)。
检查优先权将是下一个:
- ./test.js
- ./test.json
- ./test.node
- ./test/index.js
- ./test/index.node
资料来源:
https://nodejs.org/api/modules.html#modules_file_modules https://nodejs.org/api/modules.html#modules_folders_as_modules
弗罗姆reqire
的文件:
一旦Node.jsfind了node_modules文件夹,它就会尝试以(.js)Javascript文件或命名的子目录加载给定的模块。
而且,如果它find了命名的子目录,它将尝试以各种方式加载文件。 所以,例如,如果你提出加载模块的请求,“test”:var utils = require( "test" );
Node.js将执行一个分层目录search“node_modules”
和“testing”在以下方面:./node_modules/test.js ./node_modules/test/index.js ./node_modules/test/package.json
所以,答案是: File
第一, Directory
第二, Module
第三。