1、项目初始化,会自动生成package.json文件
1 | // 初始化 |
2、在项目安装webpack作为依赖包
1 | // 全局安装 |
3、在终端使用webpack
对入口文件(main.js)做处理,生成一个打包文件(bundle.js)。指定入口文件后,webpack将自动识别项目所依赖的其它文件,不过需要注意的是如果你的webpack不是全局安装的,那么当你在终端中使用此命令时,需要额外指定其在node_modules中的地址
1 | // webpack全局安装的情况 |
4、通过配置文件来使用webpack
为了不用每次修改代码后都要通过终端命令对bundle.js进行更新,通过定义一个配置文件webpack.config.js来实现上步功能,然后只需在终端执行webpack(非全局安装需使用node_modules/.bin/webpack)命令可自动生成bundle.js文件
1 | const path = require('path') // 定义根目录 |
5、更快捷的执行打包任务
在命令行中输入命令需要代码类似于node_modules/.bin/webpack这样的路径其实是比较烦人的,不过值得庆幸的是npm可以引导任务执行,对npm进行配置后可以在命令行中使用简单的npm start命令来替代上面略微繁琐的命令。在package.json中对scripts对象进行相关设置即可,设置方法如下。
1 | { |
注:
- package.json中的script会按照一定顺序寻找命令对应位置,本地的node_modules/.bin路径就在这个寻找清单中,所以无论是全局还是局部安装的Webpack,你都不需要写前面那指明详细的路径了。
- npm的start命令是一个特殊的脚本名称,其特殊性表现在,在命令行中使用npm start就可以执行其对于的命令,如果对应的此脚本名称不是start,想要在命令行中运行时,需要这样用npm run {script name}如npm run build
- webpack帮我们打包生成的bundle.js文件,并没有存放到实际的物理磁盘上,由于每次保存代码后都要更改bundle.js所以为了访问速度快些而是直接托管到了电脑的内存中,所以我们在项目根目录中,根本找不到这个打包好的bundle.js
6、打包发布
(1)为什么要打包发布?
项目开发完成之后,需要使用webpack 对项目进行打包发布,主要原因有以下两点:
- 开发环境下,打包生成的文件存放与内存中,无法获取到最终打包生成的文件。
- 开发环境下,打包生成的文件不会进行代码压缩和性能优化。
(2)配置webpack的打包发布
1 | "scripts": { |
–mode 是一个参数项,用来指定webpack的运行模式。
production代表生产环境,会对打包生成的文件进行代码压缩和性能优化。
注意:通过–mode 指定的参数项,会覆盖webpack.config.js 中的model选项。