1. Node.js中模塊加載機制
1.1 模塊查找規則-當模塊擁有路徑但沒有后綴時
require('./find.js');
require('./find');
- require方法根據模塊路徑查找模塊,如果是完整路徑,直接進入模塊
- 如果模塊后綴省略,先找同名JS文件再找同名JS文件夾
require('./find');
// 以上會先找到命令行目錄下的find.js文件.若找到則返回.否則尋找同名文件夾.
- 如果找到同名文件夾.若文件夾中存在
package.json
,且package.json
中存在main
屬性.則會執行main屬性對應的值 - 否則,找到文件夾中的index.js
- 如果找指定的入口文件不存在或者沒有指定入口文件就會報錯,模塊沒有被找到
1.2 模塊查找規則-當模塊沒有路徑且沒有后綴時
require('find');
- Node.js會假設它是系統模塊
- Node.js會去node_modules文件夾中
- 看是否有該名字的JS文件
- 再看是否有該名字的文件夾
- 如果是文件夾,檢查是否有
package.json
.若有,從main中找到對應的js文件 - 如果沒有會查找有沒有index.js文件.
- 都沒有報錯