我在上一篇文章:【Webpack4 创建项目以及打包一个JS文件】 已经搭建过环境以及创建过项目了。
1、创建一个文件夹 webpack,通过命令行 cd 到该文件夹
$ cd /webpack
2、进行初始化
$ npm init
3、如果没有安装 webpack、webpack-cli 可以看顶部文章进行安装。
4、安装 webpack-dev-server
$ npm install webpack-dev-server --save-dev
5、安装完成之后,在当前目录创建一个 main.js 文件,里面随便写的内容:
console.log('dzm');
6、之前文字我们是通过新建一个 webpack.config.js 来进行配置的,其实现在区分环境也差不多是同理,这里我记录两种方式
1)在 package.js 中添加 scripts 配置 serve 跟 build,然后两者分别对应不同的配置文件,配置里面可以单独针对编写配置,这种方式是通过不同配置文件直接进行打包:
"scripts": { "serve": "webpack --config build/dev.js", "build": "webpack --config build/pro.js", "test": "echo \"Error: no test specified\" && exit 1" },
dev.js 与 pro.js 里面也只需要一样的写不同配置,可以直接在两份文件中输出不同的打包文件名进行测试:
var config = { // 入口文件 entry: { main: './main.js' }, // 输出配置 output: { // 输出得到的文件,文件名可以随意写 filename: 'xyq.js' } };
文件效果:
2)在 package.js 中添加 scripts 配置 serve 跟 build,通过 webpack-dev-server 传入不同的参数进行区分,当然也可以像上面一样建两个文件进行区分:
"scripts": { "serve": "webpack-dev-server --env development --config build/conf.js", "build": "webpack-dev-server --env production --config build/conf.js", "test": "echo \"Error: no test specified\" && exit 1" },
然后我们新建在一个 conf.js 文件,可以在里面进行处理,我这边就用到了合并配置文件的操作,所以需要安装一下 webpack-merge
$ npm install webpack-merge --save-dev
conf.js 里面是这么判断使用的,我这边还是保持这 第一种方案的 配置文件区分方式,通过判断环境拿到不同配置文件的配置之后在与公用配置进行合并
// 开发配置 const devConfig = require('./dev') // 正式配置 const proConfig = require('./pro') // 合并插件 需要安装 npm install webpack-merge --save-dev const marge = require('webpack-merge') // 公用配置 var pubConfig = env => { // 这里也可以通过判断 env 进行区分 return { // 入口文件 entry: { main: './main.js' }, // 输出配置 output: { // 输出得到的文件,文件名可以随意写 filename: 'xyq.js' } } }; // 根据判断进行区分环境 module.exports = env => { // 这里的 env 就是 pageage.js 里面 --env 后面配置好的参数 development 与 production let config = env === 'production' ? proConfig : devConfig // 通过判断环境之后得到的配置与公用配置合并 return merge(pubConfig(env), config) };
文件效果:
7、上面选一种进行测试配置好之后,运行命令
$ npm run serve // 或者 $ npm run build