能够说如今但凡开发Single page application,webpack是一个不可或缺的工具。javascript
WebPack能够看作是一个模块加工器,如上图所示。它作的事情是,接受一些输入,通过加工产生一些输出。html
输入是咱们web前端项目的模块文件,一般状况下这些文件都不能直接被浏览器的JavaScript执行引擎所执行。前端
输出是通过webpack加工后的能被浏览器使用的javascript和静态资源文件。好比ES6的js转成ES5的js,CSS预处理器文件转成CSS文件等等。java
咱们来动手作一个具体的例子。这个例子只花费10分钟时间,就能让咱们熟悉webpack的基本用法。webpack
1. 新建一个文件夹,首先用npm init命令建立一个package.json:web
在下面使用命令行npm install --save-dev webpack,安装webpack并保存到项目的package.json的devDependencies下面。npm
花了一分钟才执行完毕。json
执行完毕后,检查package.json, 发现webpack出如今devDependencies区域里。浏览器
此时项目文件夹层次结构以下图:app
2. 新建一个index.html文件,输入如下内容:
<html> <div id="app"></div> <script src="./dist/bundle.js"></script> </html>
从源代码看出,这个html引用了一个webpack打包以后生成的输出文件。
既然是模块化开发,咱们就新建一个模块,实现文件放在print.js里:
function print(content){ window.document.getElementById("app").innerText = "Hello," + content; } module.exports = print;
这个模块就实现了一个print函数,把传入的字符串显示在index.html的id为app的div标签里。
有了module后,咱们还须要执行这个module。为此,新建一个main.js文件,输入下列内容:
const print = require("./print.js"); print("Jerry");
最后,咱们得生成index.html使用到的bundle.js文件。为此,咱们要给webpack定义一个任务,经过新建文件webpack.config.js完成。
entry字段定义了webpack的输入:main.js, 输出则放在当前目录dist下面的bundle.js里。
const path = require("path"); module.exports = { entry: "./main.js", output: { filename: "bundle.js", path: path.resolve(__dirname, "./dist"), }, mode: 'development' // 设置mode };
至此,webpack_demo文件夹下的资料看起来是这样的:
执行命令行webpack:
执行完webpack后,打开index.html, 看到了咱们指望中的Hello Jerry:
至此,一个最简单的webpack例子就跑通了。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":