文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
三、webpack 如何解析代码模块路径
webpack 中有一个很关键的模块 enhanced-resolve
就是处理依赖模块路径的解析的,这个模块可以说是 Node.js 那一套模块路径解析的增强版本,有很多可以自定义的解析配置
- 在 webpack 配置中,和模块路径解析相关的配置都在
resolve
字段下
module.exports = { resolve: { // ... } }
3.1 常用的一些配置
resolve.alias
假设我们有个 utils
模块极其常用,经常编写相对路径很麻烦,希望可以直接 import 'utils'
来引用,那么我们可以配置某个模块的别名,如
alias: { utils: path.resolve(__dirname, 'src/utils') // 这里使用 path.resolve 和 __dirname 来获取绝对路径 }
上述的配置是模糊匹配,意味着只要模块路径中携带了 utils 就可以被替换掉,如:
import 'utils/query.js' // 等同于 import '[项目绝对路径]/src/utils/query.js'
如果需要进行精确匹配可以使用:
alias: { utils$: path.resolve(__dirname, 'src/utils') // 只会匹配 import 'utils' }
resolve.extensions
extensions: ['.wasm', '.mjs', '.js', '.json', '.jsx'], // 这里的顺序代表匹配后缀的优先级,例如对于 index.js 和 index.jsx,会优先选择 index.js
这个配置的作用是和文件后缀名有关的,这个配置可以定义在进行模块路径解析时,webpack 会尝试帮你补全那些后缀名来进行查找
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论