Webpack 是一个静态资源打包工具。
它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去。
输出的文件就是编译好的文件,就可以在浏览器段运行了。
我们将 Webpack 输出的文件叫做 bundle。
Webpack 本身功能是有限的:
开发模式:仅能编译 JS 中的 ES6模块化 语法
生产模式:能编译 JS 中的 ES6模块化 语法,还能压缩 JS 代码
首先准备src文件夹里面存放的是项目源码目录
main.js:项目主文件 打包的入口文件 导入
js文件目录:使用模块化语法,暴露出去
使用index.html 引入main.js 此时会报错,es6模块化浏览器不识别 会报错
public:放置静态文件
![](https://img-blog.csdnimg.cn/img_convert/2281be7de90f7dff341e8dc1edb55a88.png)
![](https://img-blog.csdnimg.cn/img_convert/2fef9b7e7084f57e13cb49f79a49a4eb.png)
![](https://img-blog.csdnimg.cn/img_convert/856a7f521affe9fc42058c8cf7e85dc1.png)
![](https://img-blog.csdnimg.cn/img_convert/4d3e9b2133de43bbf2289bb5b8ba6fa1.png)
![](https://img-blog.csdnimg.cn/img_convert/ddd7fbc7623d064d376855a0a7ef0f36.png)
打开index报错:Uncaught SyntaxError: Cannot use import statement outside a module
![](https://img-blog.csdnimg.cn/img_convert/78154d0042d16f4d4e034c6d46424834.png)
浏览器不支持es6模块化,使用webpack ,将文件进行编译 编译成浏览器可以识别的语法
安装包,安装前需要初始化包描述文件:
npm init -y
![](https://img-blog.csdnimg.cn/img_convert/4b26df66ff8c3447227e87c90f6ca66e.png)
包名不可以是webpack 否则会出错 主文件改成main.js
![](https://img-blog.csdnimg.cn/img_convert/a9cf996242da595b0df847ffc5abfaf2.png)
下载依赖
npm i webpack webpack-cli -D
运行:npx webpack: 是用来运行本地安装 Webpack 包的。
mode=production 生产模式——代码更简洁
./src/main.js: 指定 Webpack 从 main.js 文件开始打包,不但会打包 main.js,还会将其依赖也一起打包进来。
npx webpack ./src/main.js --mode=development
代码更复杂
![](https://img-blog.csdnimg.cn/img_convert/d90824f23210866c4674e901764e6c23.png)
npx webpack ./src/main.js --mode=production
代码更简洁
![](https://img-blog.csdnimg.cn/img_convert/cced15d32e56def75bad2b73cd37887a.png)
这里注意一定要是 ./ 而是不是.\
![](https://img-blog.csdnimg.cn/img_convert/174d17c61fecf05d270c60a390c7eed0.png)
打包生成了dist 目录 下面的main.js
![](https://img-blog.csdnimg.cn/img_convert/f2bc4330030a10e591c07d267dba08f8.png)
使用打包后的main.js
![](https://img-blog.csdnimg.cn/img_convert/a4d2a43d62d227a1afa7b198dba546bc.png)
成功运行
![](https://img-blog.csdnimg.cn/img_convert/925178bd5a1c664c3b1e0d87334da15b.png)