webpack之拆分开发环境和生产环境配置

webpack之拆分开发环境和生产环境配置

1、拆分开发环境和生产环境配置

(1)公共路径

publicPath配置选项在各种场景中都非常有用,你可以通过它来指定应用程序中所有资源的基础路径

基于环境配置

在开发环境中,我们通常有一个assets/文件夹,它与索引页面位于同一级别,这没太大问题,但是,如果我们将所有静态资源托管至CDN。然后想在生产环境中使用呢?

想要解决这个问题,可以直接使用一个enviroment variable(环境变量),假如我们有一个变量ASSET_PATH:

output: {
 publicPath:'http://localhost:8080'//这个路径我们指定为一个域名
}

(2)环境变量

想要消除webpack.config.js在开发环境和产生环境之间的差异,你可能需要环境变量

需要将module.exports里面的配置转化成一个函数
module.exports = (env) => {
  console.log(env);
  mode:env.production ? 'production' : 'development'
}

(3)将js文件进行压缩

npm install terser-webpack-plugin -D
const TerserPlugin = require('terser-webpack-plugin')

optimization ; {
 minimizer:[
 new TerserPlugin()
 ]
}
//在生产环境中执行压缩,在开发环境中就不执行压缩了
2、拆分配置文件
3、npm 脚本
当不希望在生产环境中打包有错误的提示,应该做如下的配置
//所谓的性能方面的配置
performance: {
  hints: false
}
4、提取公共配置

当发现两个配置文件中有大量的重复代码,可以手动的将这些重复的代码单独提取到一个文件里。创建webpack.config.common.js

5、合并配置文件

如何将拆分的webpack.config.dev.js、webpack.config.prod.js、webpack.config.common.js进行合并,此时需要一个npm install webpack-merge -D

新建一个webpack.config.js文件,此文件夹的作用是:将上面三个文件merge到一起

在新建的文件夹中做如下的配置:
const {merge} = require('webpack-merge');
const commonConfig = require('./webpack.config.common');
const productionConfig = require('./webpack.config.prod');
const developmentConfig = require('./webpack.config.dev');
module.exports = (env) => {
switch(true) {
 case env.development:
   return merge(commonConfig, developmentConfig)
 case env.production: 
   return merge(commonConfig, productionConfig)
  default: 
   return newError('No matching configuration was found')//没有匹配到config
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值