node的第三方包的查找机制
1. 循环module.paths 去找对应的包!(koa) 找到之后停止循环
2. 查阅第一步找到的包的描述文件,package.json
3. 查阅package.json的main字段 如果字段指向的是一个有效的js文件 则返回这个js文件暴露出来的模块
4. 查阅package.json的main字段 如果字段指向的不是一个有效的js文件 则寻找包底下的index.js暴露的模块
5. 如果包没有提供index.js 则报错!!!
webpack的包查找机制
https://webpack.docschina.org/concepts/module-resolution/
import Vue from 'vue'
有别名
找到别名所指向的内容
别名可以是一个文件
别名也可以是一个文件夹
没有别名:
1. 循环resolve.modules配置指定的目录 找vue包
resolve.modules 默认配置 ['node_modules']
2. 查阅包描述信息中的指定字段;这个指定字段由resolve.mainFields配置来指定
resolve.mainFields 默认配置 ['browser', 'module', 'main']
3. 如果遍历完resolve.mainFields指向的文件后还是没有命中一个有效的文件;那么
webpack会去包底下找对应的文件;这些文件的命名由resolve.mainFiles配置来指定
resolve.mainFiles 默认值 ['index']
这些文件的后缀由resolve.extensions配置来指定
resolve.extensions 默认值 ['.wasm', '.mjs', '.js', '.json']
4. 如果以上都没有命中一个文件 则报错!