webpack-loader记录

loader的意义就在于他可以帮你"改代码"

比如说,你在一个js文件里写了一行“错误”的代码,loader可以识别到这些代码并且将它转换为正确的代码。

最好的例子就是jsx写法,当在js文件中没有别的配置,直接写jsx必定是报错的,但是jsx可以被jsx-loader识别后转换为了CreateElement的函数表达式,然后再交给js引擎去执行,那么我们的错误代码也可以运行起来了。这可以配合一系列的语法检查,语法提示工具,可以很大程度上提升开发效率以及代码的可维护性和可读性。

每个loader都是一个函数或者一个模块导出为一个函数,该函数的作用就是接收你的“错误代码”并且将它转换为“正确代码”

并且可以同时存在多个loader,每个loader在转换代码结束后会把代码交接给下一位loader直到最后一位loader。

官网链接 https://www.webpackjs.com/api/loaders/#%E5%90%8C%E6%AD%A5-loader

同步loader

绝大多数情况下,我们只需要写同步loader,算了,还是看官网来的简洁明了,loader的api官网都列得很清楚了,直接上代码,下面的loader是为了在vue的单文件组件中,以i-开头的组件都可以无需引入和注册即可使用,loader会帮我们解析模板并完成依赖的组件的引入和注册,即避免了全局引入所有组件导致的首页文件体积过大,也避免了开发时需要重复的写import和components:{}.并且可以自己方便得进行组件的全局替换。

个人觉得开发体验极佳,唯一需要遵循的是所有iview的组件统一以i-开头写在模板里,并且自己不要使用i-开头定义组件。

思路其实简单,查找出template里的i-开头的标签,转换为驼峰式,查找出components注册组件的代码,如果不存在就创建一份components,向components插入‘i-select’:Select,这样的代码,并且去重,找出import *** iview这行代码,如果不存在就创建一行,插入驼峰式的组件(之前查找出来的),并且去重,返回处理完成后的代码。然后就是优化性能,跳过node_modules和exclude,跳过template不包含i-开头标签的.vue文件

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值