According to the official Webpack document indicated "Loaders should do only a single task".
Thanks to Vue-loader, i run it well, and it is very useful.But It just like a super manager and looks too tired,I don't think it is a good idea.
And recently, I discover another loader,wc-loader(https://github.com/aruntk/wc-loader)
which loader is more independence. What Polymer-loader do is similar to Vue-loader, and now we can use Wc-loader instead of Polymer-loader to get better(do only a single task).So I think it is possible to use the same way to make vue-loader more independence(do only a single task).
is it better to do only single task?
===== You can ignore all those ⬇️=====
先祝新年 鸡鸣天晓地回春,鹏抟翼振鸿腾飞。
那么问题是这样的,vue-loader用起来似乎很美好,也面面俱到。
但是对于vue-loader像个大管家一样的行为多少是有些犹豫的。
自己的想法和这个帖子的想法=> 吐槽一下VUE-LOADER(http://hao.jser.com/archive/10146/)
基本是一样的,于是不多叙述了,请参考该帖。
另外,前阵有看见过wc-loader(https://github.com/aruntk/wc-loader) 这个loader,
wc-loader uses parse5 which parses HTML the way the latest version of your browser does. Does not use any regex to parse html.
似乎wc-loader这种做法是独立一些的,看起来 do only a single task。
那么这种做法对于vue-loader是否有借鉴意义?
整合度过高是否影响灵活性,并且要再vue-loader的选项中要多配置一次。
前阵时间 vue-loader 增加了 css-module 的支持,是否意味着vue-loader的维护成本比其他loader高?
顺带献下丑,share一下自己的配的脚手架https://github.com/AircityScript/vue-startup
先学好语文。
@airyland 已经很详细了,想法和这个帖子http://hao.jser.com/archive/10146/ 是一样的 ,恕不赘言。vue-loader和polymer-loader的行为是一样的就是大管家,wc-loader的目的就是不要像polymer-loader一样,而是 do only a single task
I could understand your explanation. (translation with Google Translate )
Sorry, please write with english ...
@kazupon -.- Yeap, thank you for your kind reminder,i feel sorry for you.The traditional new year made me excited and can't help writing chinese. And now I had re-edited it,thanks again!
@AircityScript Thank you for your re-editing! :)
I'm feeling so it.
Fortunately, @evan had mentioned about it in #582.
In the future, vue-loader may be refactoring.
^_^ cc @yyx990803 ?
ah, sorry, you're right.
首先,最新版本的 vue-loader 支持 chain 在其他 loader 后面,也支持对 vue 文件里的每一块单独配置 loader / preLoader / postLoader,在灵活性上并不存在什么解决不了的问题。
其次,『webpack 的官方建议』只是一个对社区 loader 的大致建议,但如果你研究过 webpack 官方的各种 loader 实现你会发现里面不符合这条建议的多了去了。事实上 vue-loader 的定位本来就是一个 meta loader,教条地遵循『只做一件事』毫无意义。我也没觉得 wc-loader 有简单到哪里去 —— 事实上实际用的时候你就会发现 vue-loader 支持的它这个不支持那个不支持,如果最后全支持了,要么是 wc-loader 本身变得和 vue-loader 一样了,要么是数倍复杂的额外配置。
『单一职责/小而美』听上去很美,但是如果本来要解决的就是一个复杂的问题,那么为了拆分而拆分就只会徒增维护复杂度和使用复杂度。Webpack 之所以打败了 Browserify,就是因为前者承认了前端构建本身就是一个复杂的问题。Browserify 核心很简单,但是一旦要解决和 Webpack 等量级别的实际生产问题,反而变得复杂度更高 -- 你可以自己试试怎么用 Browseirfy 配置 hot-reload + code splitting。
我的建议:思考的时候多从实际的技术取舍出发,给出实际使用中遇到的问题才有说服力。光是『觉得犹豫/担心』没有任何意义。那篇帖子也是一样的问题。
Most helpful comment
首先,最新版本的 vue-loader 支持 chain 在其他 loader 后面,也支持对 vue 文件里的每一块单独配置 loader / preLoader / postLoader,在灵活性上并不存在什么解决不了的问题。
其次,『webpack 的官方建议』只是一个对社区 loader 的大致建议,但如果你研究过 webpack 官方的各种 loader 实现你会发现里面不符合这条建议的多了去了。事实上 vue-loader 的定位本来就是一个 meta loader,教条地遵循『只做一件事』毫无意义。我也没觉得 wc-loader 有简单到哪里去 —— 事实上实际用的时候你就会发现 vue-loader 支持的它这个不支持那个不支持,如果最后全支持了,要么是 wc-loader 本身变得和 vue-loader 一样了,要么是数倍复杂的额外配置。
『单一职责/小而美』听上去很美,但是如果本来要解决的就是一个复杂的问题,那么为了拆分而拆分就只会徒增维护复杂度和使用复杂度。Webpack 之所以打败了 Browserify,就是因为前者承认了前端构建本身就是一个复杂的问题。Browserify 核心很简单,但是一旦要解决和 Webpack 等量级别的实际生产问题,反而变得复杂度更高 -- 你可以自己试试怎么用 Browseirfy 配置 hot-reload + code splitting。
我的建议:思考的时候多从实际的技术取舍出发,给出实际使用中遇到的问题才有说服力。光是『觉得犹豫/担心』没有任何意义。那篇帖子也是一样的问题。