学生教材网 >程序设计 > 开源项目 > 程序开发 > 浏览文章

webpack使用优化(持续更新,欢迎补充) - lcxfs1991

来源:网络编辑:佚名时间:2016-01-10人气:

云云手机报价,天津同城交友,专家推荐书

原文链接

前言

本文不是webpack入门文章,如果对webpack还不了解,请前往题叶的Webpack入门,或者阮老师的Webpack-Demos。

为什么要使用Webpack

  1. 与react一类模块化开发的框架搭配着用比较好。

  2. 属于配置型的构建工具,比较用容易上手,160行代码可大致实现gulp400行才能实现的功能。

  3. webpack使用内存来对构建内容进行缓存,构建过程中会比较快。

第3点我想稍微论述一下,如果看过我之前写的《如何写一个webpack插件(一)》,会发现,webpack会将文件内容存在compilation这个大的object里面,方便各种插件,loader间的调用。虽然gulp也用到了流(pipe)这样的内存处理方式,但感觉webpack更进一步。gulp是每一个任务(task)用一个流,而webpack是共享一个流。

简要回顾Webpack的配置

Webpack的配置主要为了这几大项目:

  • entry:js入口源文件

  • output:生成文件

  • module:进行字符串的处理

  • resolve:文件路径的指向

  • plugins:插件,比loader更强大,能使用更多webpack的api

常用Loaders介绍

  • 处理样式,转成css,如:less-loader, sass-loader

  • 图片处理,如: url-loader, file-loader。两个都必须用上。否则超过大小限制的图片无法生成到目标文件夹中

  • 处理js,将es6或更高级的代码转成es5的代码。如:
    babel-loader,babel-preset-es2015,babel-preset-react

  • 将js模块暴露到全局,如果expose-loader

常用Plugins介绍

  • 代码热替换, HotModuleReplacementPlugin

  • 生成html文件,HtmlWebpackPlugin

  • 将css成生文件,而非内联,ExtractTextPlugin

  • 报错但不退出webpack进程,NoErrorsPlugin

  • 代码丑化,UglifyJsPlugin,开发过程中不建议打开

    也来说说touch事件与点击穿透问题

    做过移动端H5页面的同学肯定知道,移动端web的事件模型不同于PC页面的事件。看了一些关于touch事件的文章,我想再来回顾下touch事件的原理,为什么通过touch可以触发click事件,touch事件是不是万能的以及它可能存在的问题。

    说说focus /focusin /focusout /blur 事件

    focus:当focusable元素获得焦点时,不支持冒泡;focusin:和focus一样,只是此事件支持冒泡;blur:当focusable元素失去焦点时,不支持冒泡;focusout:和blur一样,只是此事件支持冒泡;

热门推荐