我在上一篇文章:【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