webpack系列目录javascript
本系列并不是所有原创,如非原创,正文篇首会注明转载地址css
基于webpack搭建纯静态页面型前端工程解决方案模板, 最终形态源码见github: https://github.com/ifengkou/webpack-templatehtml
正文前端
本篇部分摘录于 webpack中文入门指南-模块系统 & webpack dev serverjava
Webpack是一款用户打包前端模块的工具,它将根据模块的依赖关系进行静态分析,而后将这些模块按照指定的规则生成对应的静态资源。主要是用来打包在浏览器端使用的javascript的。同时也能转换、捆绑、打包其余的静态资源,包括css、image、font file、template等node
webpack的官网是 http://webpack.github.io/ ,文档地址是 http://webpack.github.io/docs/webpack
市面已存在大量的模块管理和打包工具,为何还重复造轮子,webpack有什么特点?git
这些已有的模块化工具并不能很好的完成以下的目标:github
代码拆分
Webpack 有两种组织模块依赖的方式,同步和异步。异步依赖做为分割点,造成一个新的块。在优化了依赖树后,每个异步区块都做为一个文件被打包。
Loader
Webpack 自己只能处理原生的 JavaScript 模块,可是 loader 转换器能够将各类类型的资源转换成 JavaScript 模块。这样,任何资源均可以成为 Webpack 能够处理的模块。
智能解析
Webpack 有一个智能解析器,几乎能够处理任何第三方库,不管它们的模块形式是 CommonJS、 AMD 仍是普通的 JS 文件。甚至在加载依赖的时候,容许使用动态表达式 require("./templates/" + name + ".jade")。
插件系统
Webpack 还有一个功能丰富的插件系统。大多数内容功能都是基于这个插件系统运行的,还能够开发和使用开源的 Webpack 插件,来知足各式各样的需求。
快速运行
Webpack 使用异步 I/O 和多级缓存提升运行效率,这使得 Webpack 可以以使人难以置信的速度快速增量编译。web
总结下来其主要的优点:
首先要安装 Node.js, Node.js 自带了软件包管理器 npm
用npm 安装webpack
$ npm install webpack -g
此时 Webpack 已经安装到了全局环境下,能够经过命令行 webpack -h 查看相关指令
一般咱们会将webpack安装到项目依赖,这样就可使用本地版本的webpack
//进入项目目录 //肯定已有package.json,没有就npm init 建立 $ npm install webpack --save-dev //查看webpack 版本信息 $ npm info webpack //安装指定版本 $ npm install webpack@1.31.x --save-dev
若是要使用webpack开发工具,要单独安装 webpack-dev-server
$ npm install webpack-dev-server --save-dev
构建命令,webpack的经常使用参数
$ webpack --config webpack.min.js //另外一份配置文件 $ webpack --display-error-details //显示异常信息 $ webpack --watch //监听变更并自动打包 $ webpack -p //压缩混淆脚本,这个很是很是重要! $ webpack -d //生成map映射文件,告知哪些模块被最终打包到哪里了
webpack-dev-server是一个小型的node.js Express服务器,它使用webpack-dev-middleware中间件来为经过webpack打包生成的资源文件提供Web服务。它还有一个经过Socket.IO链接着webpack-dev-server服务器的小型运行时程序。webpack-dev-server发送关于编译状态的消息到客户端,客户端根据消息做出响应。
webpack-dev-server有两种模式支持自动刷新——iframe模式和inline模式
使用iframe模式,无需额外配置,只需在浏览器输入
http://localhost:8080/webpack-dev-server/index.html
使用inline模式有两种方式:命令行和nodejs API
命令行: 在运行时,加上 --inline 选项
$ webpack-dev-server --inline
访问,经过http://localhost:8080
就能够访问
nodejs API 方式 ,须要手动把 webpack-dev-server/client?http://localhost:8080 加到配置文件的入口文件处
webpac-dev-server支持Hot Module Replacement,即模块热替换,在前端代码变更的时候无需整个刷新页面,只把变化的部分替换掉
下章,就开始利用 Webpack 实现 前端项目的 自动构建部署!!