webpack中对配置文件进行分离

webpack.config.js 文件中,有些配置只在开发阶段有用,打包生成最终代码的时候,这个配置就没有用了,比如dev-server。但是有些配置在开发阶段不需要,但是打包的时候需要,比如 uglifyjs-webpack-plugin 插件。如果我们不加分离的都写到这一个文件中,显然不太好。那么接下来我们对这个配置文件进行分离。


步骤一

在项目根目录下创建一个 build 文件夹专门用来存放配置文件,再创建三个js文件,如图所示:
在这里插入图片描述

  • base.config.js 文件,存放基本配置,开发阶段和生产阶段都需要的配置
  • dev.config.js 文件,存放只在开发阶段用到的配置
  • prod.config.js 文件,存放只在生产阶段用到的配置

步骤二

现在需要将三个配置文件联系到一起,使用webpack-merge,安装: npm install webpack-merge --save-dev

我的webpack版本是3.6.0,webpack-merge版本是4.2.2

接下来在 dev.config.js 文件和 prod.config.js 文件中使用webpack-merge

// prod.config.js
let UglifyWebpackPlugin = require('uglifyjs-webpack-plugin')
let webpackMerge = require('webpack-merge') //1.引入webpackMerge 
let baseConfig = require('./base.config')   //2.引入base.config.js

module.exports = webpackMerge(baseConfig,{
    
      //3.使用webpackMerge进行合并
  plugins:[
    new UglifyWebpackPlugin() //打包阶段才需要压缩js代码
  ]
})
//dev.config.js
let webpackMerge = require('webpack-merge');
let baseConfig = require('./base.config')

module.exports = webpackMerge(baseConfig,{
    
    
  devServer:{
    
     //这个配置只在开发阶段有用,打包生成最终代码的时候,这个配置就没有用了
    contentBase:'./dist',
    inline:true,
  }
})

步骤三

在 package.json 文件里的scripts中配置命令:

{
    
    
	 //...其它
	"scripts": {
    
    
	    "build": "webpack --config ./build/prod.config.js",
	    "dev": "webpack-dev-server --open --config ./build/dev.config.js"
	  }
}
  • 在执行 npm run build 的时候,会使用prod.config.js配置文件
  • 在执行 npm run dev 的时候,会使用dev.config.js配置文件

另外,注意一下在 base.config.js 中 output 的配置

module.exports = {
    
    
  entry: './src/main.js',
  output: {
    
    
   //注意这个地方是 ../dist,如果直接写 dist ,它会在build文件夹下生成dist文件夹
    path: path.join(__dirname, '../dist'),
    filename: 'bundle.js',
  }
}

资料

本博客的演示代码下载链接:https://webchang.lanzous.com/iB6Irkh9lpc 密码:f2wn

猜你喜欢

转载自blog.csdn.net/weixin_43974265/article/details/112723994