文章目录
- 前言
- 一、分离说明
- 1. webpack.config.js 名称固定
- 2. 生产环境和开发环境
- 三、分离内容
- 1. 分离插件依赖:webpack-merge
- 2. webpack.base.config.js
- 3. webpack.dev.config.js
- 4. webpack.prod.config.js
- 5. 修改package.json 中的script脚本
- 三、注意的地儿
前言
- webpack的配置文件
webpack.config.js
中,包含了生产环境和开发环境时的所有配置,当打包时为了速率又要删除开发环境的配置,这样十分不友好,所以进行如下分离。
- 分离出来生产环境依赖配置文件(webpack.prod.config.js)和开发环境依赖配置文件(webpack.dev.config.js),
- 将共有的才封装成一个配置文件 (webpack.base.config.js)
一、分离说明
1. webpack.config.js 名称固定
webpack的配置文件是 webpack.config.js
,这个名称是固定的,如果删除了这个文件,然后进行npm run build
打包,会报错,如下截图所示:
说明这个名称是固定的
2. 生产环境和开发环境
- 前面也说过
开发环境
:项目在开发时所依赖的环境;在上线或者发布时,项目时不依赖的。
生产环境
:项目上线或者发布时所以依赖的环境。 - 在webpack.config.js 配置文件中,有的配置属于开发时依赖,有的是属于生产时依赖,也有的依赖的两个环境都需要的。
- 项目上线时,一般不会打包开发时的依赖,这样就会影响速率。
- 所以便有了将webpack.config.js 配置文件进行分开。分成三个配置文件,如下:
-
webpack.base.config.js
:两个环境公共的部分 -
webpack.dev.config.js
:开发环境独有的配置 -
webpack.prod.config.js
:生产环境独有的配置
三、分离内容
1. 分离插件依赖:webpack-merge
- 分成三个配置文件,引入时,需要用到依赖:
webpack-merge
- 安装如下
- 将原来的配置文件
webpack.config.js
中的内容复制三份到三个新的配置文件中,然后将这三个配置文件都放到build文件夹
中,并且删除掉webpack.config.js
配置文件。
目录如下: - 其中
uglifyjs-webpack-plugin
插件的使用是生产环境时的依赖,webpack-dev-server
插件的使用时开发环境时的依赖。此时就先举两例。
2. webpack.base.config.js
- 这个配置文件是生产环境和开发环境共有的webpack的配置。一会儿会在
webpack.dev.config.js
和webpack.peod.config.js
这两个环境中进入的。(引入需要使用到刚才安装的依赖插件webpack-merge
) - 删除(这里先注释)掉
uglifyjs-webpack-plugin
和webpack-dev-server
这两个插件的使用。
内容如下
- 主要修改地方如下:
3. webpack.dev.config.js
- 这里只保留
开发环境
时用到的插件依赖webpack-dev-server
即可。然后删除共有的,在引入webpack.base.config.js
即可 - 内容如下:
4. webpack.prod.config.js
- 这里只保留
生产环境
时用到的插件依赖uglifyjs-webpack-plugin
即可。然后删除共有的,在引入webpack.base.config.js
即可 - 内容如下:
5. 修改package.json 中的script脚本
- 这里没有了
webpack.config.js
,在使用 npm run build
和 npm run dev
就会报最上面的错误,所以这里要指定webpack的配置文件 - 配置修改如下:
- 文件如下:
到了这里,再使用打包命令
或者开启本地服务器命令
都可以执行成功了。
三、注意的地儿
当webpack.base.config.js
基础配置文件整理过后,一定要记得修改 打包后输出文件的路径,然后会打包到 build/dist
中的。修改如下: