VueLoaderPlugin作用

在webpack配置里加入new VueLoaderPlugin,
在plugin里打断点

然后debug:
在这个地方:

可以发现,在webpack初始化的阶段..webpack.js刚开始执行的时候 这个newPlugin就应用到compiler中了,
看一下vueLoaderPlugin的内容:

…

就是先读取compiler.option.module.rule,找到给.vue或.vue.html文件进行配置的那些个rule(如:test:/.vue$/ ) 的rule。
加入pitcher这个rule规则,
pitcher里面有一个pitcher-loader,判断条件是resourceQuery中包含"vue", (比如 xxx.xx?vue&xxxx
将pitcher放到最开始,clonedRule放到中间,然后把vueRule放到最后(里面包含了你配置的vue-loader)。
其中对clonedRules也进行了一些处理
clonedRule是除了vueRule的所有其他rule,VueLoaderPlugin对所有的这些个rule的resource和resourceQuery都进行了重写:
在resourceQuery方法中添加了
fakeResourcePath,会把原resource和提取出的query中的lang字段,进行合并,
然后用rule中原始的resource过滤方法对fakeResourcePath进行过滤,看能否满足条件。
*对于vue+ts的写法,会在vue的script标签中加上lang='ts'
当处理script标签部分内容的时候,fakeresourceQuery会变成xx.vue.ts
而ts-loader的resource过滤方法是以/.tsx?$/结尾的,所以最终能匹配上。
(就是靠下面这句话)

总结:VueLoaderPlugin主要就是在处理rule。
VueLoaderPlugin作用的更多相关文章
- vue-loader分析
分析一下Vue2.0中的vue-loader是如何处理.vue单文件组件的: 1.vueLoaderplugin 作用是 找到.vue,.vue.html的rules然后在他们的rule里添加 pit ...
- if __name__== "__main__" 的意思(作用)python代码复用
if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog http://www.dabu.info/if-__-name__ ...
- (转载)linux下各个文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- github中的watch、star、fork的作用
[转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...
- web.xml中welcome-file-list的作用
今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...
- web.xml中load-on-startup的作用
如下一段配置,熟悉DWR的再熟悉不过了:<servlet> <servlet-name>dwr-invoker</servlet-name> <ser ...
- SQLSERVER中NULL位图的作用
SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...
- 电容与EMC-电容不同功能时对整板EMC的作用
一般我们的pcb板的器件有很多种类,但是值得特别关注的,很多人都会说是BGA.接口.IC.晶振之类,因为这些都是layout功能模块以及设计难点.然而数量上占绝对优势的器件却是阻容器件,之前围殴阻抗时 ...
- FTP的搭建与虚拟目录作用<之简单讲解>
操作系统:win7 VS2010编写WebService与在IIS的发布<之简单讲解>中我已经说了IIS安装与使用,不明白的可以跳过去看. 1.添加FTP站点 2. 3. 4. 5. zq ...
随机推荐
- 3.(基础)tornado的接口调用顺序与模板
上一节介绍了tornado的请求与响应,这一节介绍tornado的接口调用顺序和模板 首先都有哪些接口呢?作用是什么呢?并且都有的时候,执行顺序是怎么样的呢? 接口 1.initialize,表示初始 ...
- linux yum 安装及卸载
在Centos中yum安装和卸载软件的使用方法安装方法安装一个软件时yum -y install httpd安装多个相类似的软件时yum -y install httpd*安装多个非类似软件时yum ...
- springmvc框架中的核心对象DispatcherServlet
SpringMVC是Spring中的模块,它实现了mvc设计模式,首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映 ...
- 19.8.12 记录Scaffold(脚手架)的常见属性及使用
Scaffold 有利于我们快速的构建页面,使用也是十分的方便. 下面记录一下其简单的使用方法 Scaffold( appBar: AppBar( title: Text('课程'), ), bo ...
- linux 下mysql忘记密码或者安装好linux后不知道mysql初始密码解决方案
1.使用yum安装mysql后 2.初始密码在/var/log/mysqld.log这个文件里 3.输入命令:grep 'temporary password' /var/log/mysqld.log ...
- 理解 Cookie、Session、Token
发展史 Cookie Session Token Token的起源 基于服务器的验证 基于服务器验证方式暴露的一些问题 基于Token的验证原理 Tokens的优势 发展史 1.很久很久以前,Web ...
- XXL-JOB原理--任务调度中心任务管理
XXL-JOB原理--任务调度中心任务管理 https://blog.csdn.net/qq924862077/article/details/82713758
- k8spod探测
一.pod存活性探测 pod spec为容器列表中的相应容器定义其专用的探针即可启用存活性探测,目前,k8s的容器支持存活性探测的方法包含:ExecAction.TCPSocketActon和HTTP ...
- 依赖jquery的select皮肤2
这个下拉菜单存在于body中,不会受select父级overflow的影响,同样依赖于jquery. 缺陷是如果select上的样式不是定义在class上的,不能完全获取select上的样式. 不过, ...
- Huber loss<转发>
from https://blog.csdn.net/lanchunhui/article/details/50427055请移步原文