模块之间相互导入方式:(enhanced-resolve包解析)
- 绝对路径:这个可以直接用。
- 相对路径:上下文 + 相对路径 ==> 绝对路径
- 模块路径:alias + extensions + mainFields + main + module + resolveLoader ( 转门处理loader的resolve,和resolve配置一样 )
// 默认是查找node_modules,但是会类似Nodejs一样的路径进行搜索,一层一层网上找node_modules
resolve: {
modules: ['node_modules'],// 先当当前目录下的node_modules,找不到找上层目录的node_moudles,直到全局的node_modules
}
// 如果确定依赖模块在项目根目录下的node_modules中,那么可以写绝对路径确定查找范围
resolve: {
modules: [path.resolve(__dirname, 'node_modules')], // 确定查找目录就是项目下的node_modules,找不到不会往上层找
}
extensions
- extensions是解析到文件时自动添加扩展名:
- 默认值是
['.wasm', '.mjs', '.js', '.json']
- 所以如果我们代码中想要添加加载 .vue 或者 jsx 或者 ts 等文件时,我们必须自己写上扩展名;