require规则
- /表示绝对路径 ./表示相对路径,相对于当前文件
- 支持js json node 拓展名,不写拓展名依次尝试
- 不写路径,require中直接写一个名字,他会在build-in。在nodejs中寻找自带的模块,找不到就开始找当前目录下的node_module第三方的模块。如果当前路径找不到就开始逐层向上寻找node_module。
注意:当requir一个模块。加载一个模块所有语句都会被执行。就是(function() {
//这之中的被require都会被执行
})
特性 : 1.module加载后执行,加载完成缓存。一定模块被加载就会在内存中存在。
2.一旦出现某个模块被循环加载,就只输出已已经执行的部分。还未执行的部分不会输出。
例如:
文件A module.export.test = “A”;
const mouB = require('./modB');
console.log('这是模块A的'+'modB.test')
module.export.test = 'AA'
文件B module.export.test = "B";
const mouB = require('./modA');
console.log('这是模块B的'+'modA.test')
module.export.test = 'BB'
主函数中调用 const mouA =require('./A')
const mouB =require('./B')
输出的是 A BB ,A只是部分执行结果。而B全部执行完成
尽量避免这种循环加载,太绕。