vue-loader原理
核心原理分为两步:
1.解析.vue原始文件,按照script、template、style类型翻译成类似下面的import语句
import template from "./index.vue?vue&type=template&id=2964abc9&scoped=true&"
import script from "./index.vue?vue&type=script&lang=js&"
import style from "./index.vue?vue&type=style&index=0&id=2964abc9&scoped=true&lang=css&"
2.这一步是核心功能,遍历用户定义的rule数组,找到对应的能处理html、js、css的rule配置,然后拼接出完整的行为引用路径,如js代码babel处理
import xx from 'index.vue'
// 第一步,通过vue-loader转换成带参数的路径
import script from "./index.vue?vue&type=script&lang=js&"
// 第二步,在 pitcher 中解读loader数组的配置,并将路径转换成完整的行内路径格式
import mod from "-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-2[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&";