
写在前头
笔者是一名在校大三学生,近日来学习Webpack
饶有兴致,所以想写下这篇文章,希望能帮助到想学习webpack的小伙伴们,如有错误,欢迎指出~
Webpack可谓是我们前端开发中必不可少的一个打包工具。它其实呢就是一个现代 JavaScript 应用程序的静态模块打包器,它做的事情就是将javascript、与其他静态文件(css、js等)组成的不同模块,将其转换和打包为合适的代码和格式供浏览器使用。
安装
要想使用webpack就必须安装这个工具,笔者用的是vscode
,首先创建了以下文件夹:

npm i webpack -g
npm i webpack-cli -g //在webpack第四版中webpack将webpack-cli分离出来所以要额外安装
因为只是做演示,所以我在这是全局安装,往往在做项目时更推荐本地安装,若想本地安装或了解更多,请点击官方文档
可用webpack -v
和 webpack-cli -v
可查看版本确保安装成功

npm init -y
来进行初始化,再用npm i jquery -S
来引入jquery(后面要用到)

写入代码
我们将index.html
和 main.js
写入以下代码:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./main.js"></script> // 引入main.js改变颜色
</head>
<body>
<div>这个人很懒什么都没有留下...</div>
</body>
</html>
main.js
import $ from 'jquery'
$(function () {
$('div').css('backgroundColor', 'yellow')
})
这时我们在浏览器打开发现并没有发生颜色的改变且报错(意外的标志符)

main.js
中的import
代码,这是 Es6 的语法,浏览器并不能识别,所以这时候要用到webpack
对main.js进行打包生成一个浏览器可识别的文件便可以实行
打包
打包方式一
这时候我们执行以下命令便可以进行打包:
webpack .\src\main.js -o .\dist\bundle.js --mode=development
main.js
是我们将要打包的文件,bundle.js
是我们打包完毕后可供浏览器识别的文件,打包后注意在index.html
将引入的./main.js
改为../dist/bundle.js
才可以变颜色

打包方式二
虽然方式一打包成功,但是显然过于麻烦,我们可以直接用 webpack 命令来进行打包,但是出现了以下错误:

特别提醒
如果使用webpack
命令进行打包的话,官方默认webpack入口文件是 index.js , 默认打包好的文件名是main.js ,我们在目录下创建的入口文件为main.js
,当我们实行 webpack 命令时找不到入口当然会报错啦。
那么这时候我们只需要将main.js
名字改为 index.js
,注意: index.html
中引入的文件名也要对应改变, 即可使用webpack
命令(为了测试打包成功我将颜色改成了 原谅绿 )

那要是我偏要不改名字呢?

webpack.config.js
,添加以下代码:
const path = require('path')
module.exports = {
// entry 是webpack指定的入口
entry: path.join(__dirname,'./src/main.js'),//要打包的文件路径
// output是输出出口
output:{
path: path.join(__dirname, './dist'),//打包指定的文件路径
filename: 'bundle.js' //打包指定的文件名称
},
}
这时候我们就可以随心所欲指定需要打包的文件名了,你以为就结束了吗?执行webpack
命令后发现

mode
选项没有设置,你需要在webpack.config.js 设置 mode 为 development
const path = require('path')
module.exports = {
// entry 是webpack指定的入口
entry: path.join(__dirname,'./src/main.js'),//要打包的文件路径
// output是输出出口
output:{
path: path.join(__dirname, './dist'),//打包指定的文件路径
filename: 'bundle.js' //打包指定的文件名称
},
mode: 'development' //模式设置
}
这时候就打包成功了(颜色换成了 blue )!

写在后头
或许这篇文章对大部分人来说小菜一碟,但是如果能够帮助到别人,这也就是我写文章的初心了~