什么是webpack
webpack是一个module bundler,可以将把有依赖关系的各种文件打包成一系列的静态资源
安装
首先我们安装最新版的webpack, 我安装的版本是2.2.1
1 | npm install -g webpack |
下面我们将探讨webpack 2 的使用
我们可以直接在终端中使用webpack,命令如下
1 | webpack {源文件/入口文件} {目标文件} |
考虑到随着我们项目复杂度的增高,有可能我们的配置选项也会很多,所以,我们完全可以将配置放到文件中, webpack在执行的时候默认会加载webpack.config.js文件作为配置, 如果我们需要指定配置文件的话,方法如下:
1 | webpack --config {配置文件} |
我们来看下webpack都有哪些配置
1 | //webpack.config.js |
下面我们来创建一个简单的项目
我们的项目结构如下
1 | . |
index.html
1 | <!DOCTYPE html> |
src/entry.js
1 | document.write('hello world') |
webpack.config.js
1 | const path = require('path') |
在终端下运行命令:
1 | webpack --watch |
使用http-server起一个本地服务
1 | http-server -p 8080 |
可以看到,entry.js的内容被打包到了bundle.js 中
这是webpack最简单的应用,下面我们来看看如何使用loader
loader
webpack2中已经集成了json-loader, 所以我们无需安装其他的依赖
在src中增加hello.json文件
1 | {"greet" : "hello from json"} |
修改entry.js
1 | import json from './hello.json' |
刷新http://127.0.0.1:8080/
可以看到hello.json的结果已经输出到浏览器中
使用其他loader
如果其他格式的文件,比如css文件我们可以使用相应的loader来解析,安装依赖
1 | npm install --save-dev style-loader css-loader |
修改webpack.config.js
1 | const path = require('path') |
entry.js
1 | import './main.css' |
可以看到,main.css也经过loader的解析而打包进bundle.js里面了