stage1
---
### 📦 **项目1:手动配置第一个 Webpack 项目(零 CLI 依赖)**
**核心目标**:不使用任何脚手架工具,纯手动配置 Webpack 基础打包流程
---
#### 🔧 **前置知识清单**
1. Node.js 基础(会使用 `npm init`)
2. 理解前端模块化概念(CommonJS/ES Module)
3. 知道浏览器无法直接解析 `import/export` 语法
---
### 📝 **分步实现手册**
#### **步骤1:环境准备**
```bash
# 创建项目目录并初始化 npm
mkdir my-webpack-demo && cd my-webpack-demo
npm init -y # -y 表示自动生成 package.json步骤2:安装核心依赖
关键说明:
为什么不用
webpack-cli?为了强制手动配置,避免工具自动生成文件干扰理解此时你的
package.json中会出现:
步骤3:创建基础文件结构
文件结构应如下:
步骤4:编写基础代码
src/index.js(入口文件):
dist/index.html(手动 HTML):
步骤5:配置 Webpack 核心
webpack.config.js:
配置解析:
mode
控制构建模式,development 会保留源码映射,不压缩代码
entry
定义打包入口文件,Webpack 从这里开始分析依赖
output
指定输出位置和文件名,path.resolve() 用于处理绝对路径
步骤6:添加打包脚本
修改 package.json:
执行构建:
预期输出:
步骤7:验证结果
用浏览器打开 dist/index.html
页面应显示 "手动配置成功!"
控制台输出 "Hello from Webpack!"
🧪 练习题与答案
练习1:修改入口文件
创建一个新文件
src/hello.js:修改
src/index.js:重新运行
npm run build观察控制台和页面变化
答案验证:
打包后的
main.js应包含两个模块的代码浏览器控制台会输出两条信息
练习2:故意制造错误
在
webpack.config.js中注释掉entry配置运行
npm run build观察错误信息
预期错误:
解决方法:
恢复
entry配置理解入口文件是 Webpack 的必需配置
练习3:自定义输出文件名
修改 webpack.config.js 的 output.filename 为 [name].bundle.js
问题:
打包后生成的文件名是什么?
为什么需要这样命名?
答案:
输出文件名为
main.bundle.js(因为默认入口名是main)多入口时可通过
[name]自动生成不同文件名
🚨 常见问题排查
问题1:执行 npm run build 时报错 Cannot find module 'webpack' 原因:未正确安装 Webpack 解决:重新执行 npm install webpack --save-dev
问题2:浏览器打开 HTML 文件后无效果 检查点:
打包是否成功完成(查看终端输出)
HTML 中引用的 JS 文件名是否与输出一致
浏览器是否缓存了旧文件(尝试强制刷新 Ctrl+F5)
💡 扩展思考
如果要在配置中添加更多入口文件(如
app.js和admin.js),需要修改哪些配置?mode: 'development'和mode: 'production'的输出有何本质区别?为什么说
webpack-cli不是必需的核心依赖?
最后更新于
这有帮助吗?