代码路径
可以在 github-webpack-起步 找到本小节要学习的代码
传统方式的弊端
使用传统方式进行前端代码编写,就是 html+js+css 三辆马车。
如果我们需要编写一个页面,里面包含了第三方库 lodash,那么需要在自己编写的js前就引入lodash,否则使用的时候因为顺序原因而导致报错,代码大致如下:
index.js
function component() {
let element = document.createElement('div');
// lodash(目前通过一个 script 引入)对于执行这一行是必需的
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
return element;
}
document.body.appendChild(component());
index.html
<!doctype html>
<html>
<head>
<title>起步</title>
<script src="https://unpkg.com/lodash@4.16.6"></script>
</head>
<body>
<script src="./src/index.js"></script>
</body>
</html>
通过这种方式编写,除了上面说的顺序原因导致错误之后,还有以下不方便的地方:
- 在index.js中,我是不知道是否引入了lodash,感觉不直观
- 如果index.js中不需要lodash,但是最外层引入,就浪费了
使用webpack来编写上面程序
- 首先需要安装webpack,如果不清楚如何安装,可以参考我上篇文章 webpack安装
- 安装需要的第三方插件 lodash:npm install --save-dev lodash
- 在index.js中显示的引入 lodash:import _ from 'lodash'
- 通过webpack对index进行打包:npx webpack
- 打包之后生成一个 main.js,通过 script 引入的方式加入到 index.html 中
相应代码如下:
index.js
import _ from 'lodash';
function component() {
let element = document.createElement('div');
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
return element;
}
document.body.appendChild(component());
index.html
<!doctype html>
<html>
<head>
<title>起步</title>
</head>
<body>
<script src="main.js"></script>
</body>
</html>
相对于传统方式的好处:
- index.js 中
显示
的引入lodash,这样就不用去了解外部是不是引入来 - 如果 index.js 不需要 lodash,可以不需要引入
- 因为打包是从 index.js 开始,lodash 在 index.js 中,所以不存在 js 顺序引入问题
使用一个配置文件
上面的列子比较简单,所以我门直接使用 npx webpack
就可以进行 webpack 打包,如果项目比较复杂的话,我们还是需要一个配置文件来进行配置的。
从简单入手,我们把上面的打包内容通过配置显示出来,代码如下:
webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist')
}
};
- entry: 入口
- output:入口文件打包之后输出的地方
进行打包:npx webpack --config webpack.config.js
如果配置文件就叫做 webpack.config.js, 那么只需要 npx webpack
,如果不是的话记得写全
结束语
今天我们知道了为啥要用webpack以及webpack带来的优势,下一章我们将对webpck如何管理资源进行讲解
1条评论