The development and production modes in webpack optimize the output in different ways. In development mode, the focus is on faster builds and a better developer experience. In production mode, the focus is on highly optimized bundles, leading to a better user experience. The good news is, we can have both. In this lesson, we'll separate our webpackconfig into two configurations and update our scripts to run the right config for our needs.

Install:

npm i -D webpack-merge

Create a webpack.config.base.jf:

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin') module.exports = {
entry: './src/index.js',
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
]
},
plugins: [new HtmlWebpackPlugin({
template: './src/index.html'
})]
}

webpack.config.dev.js:

const merge = require('webpack-merge')
const baseConfig = require('./webpack.config.base') module.exports = merge(baseConfig, {
mode: 'development'
})

webpack.config.prod.js:

const merge = require('webpack-merge')
const baseConfig = require('./webpack.config.base') module.exports = merge(baseConfig, {
mode: 'production'
})

Update scripts to adopt changes:

"scripts": {
"build": "webpack --config webpack.config.prod.js",
"dev": "webpack --watch --config webpack.config.dev.js",
"test": "echo \"Error: no test specified\" && exit 1"
}

[Webpack] Create Separate webpack Configs for Development and Production with webpack-merge的更多相关文章

  1. 使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development、production)

    使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development.production) --mode 指定环境模式 ...

  2. 【webpack学习笔记(一)】流行的前端模块化工具webpack初探

    从开发文件到生产文件   有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...

  3. 【webpack】webpack-dev-server生猛上手——让我们来搭一个webpack的微服务器吧!

      [前言]:因为最近在搞百度地图API的时候到了webpack的externals,才发现我之前都只是用webpack做一些搭建完项目后的"收尾工作"--即打包,而没有把它纳入到 ...

  4. Create a Hadoop Build and Development Environment

    Create a Hadoop Build and Development Environment http://vichargrave.com/create-a-hadoop-build-and-d ...

  5. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  6. webpack前端构建工具学习总结(三)之webpack.config.js配置文件

    Webpack 在执行的时候,除了在命令行传入参数,还可以通过指定的配置文件来执行.默认情况下,会搜索当前目录的 webpack.config.js 文件,这个文件是一个 node.js 模块,返回一 ...

  7. roadhog如何支持除development和production外的其他环境变量配置

    roadhog的build和start脚本分别对应了env/development和production,但实践中存在第三种开发环境(可能是预发或集成测试),配置和前两种也都不一样,但现在似乎没办法支 ...

  8. webpack4打包报错:WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults fo

    运行命令webpack ./src/main.js ./dist/murenziwei.js后,目录上神马动静都没有,你以为在dist文件夹上会有murenziwei.js吗?毛都没有 警告和错误倒是 ...

  9. webpack中Development和Production模式的区分打包

    当我们在开发一个项目的时候,我们一般用development这个环境进行项目的开发,在这个环境下,webpack使用dev-server,帮我们启用一个服务器,然后这个服务器里面还集成了一些,比如hm ...

随机推荐

  1. springMVC接收参数 xml/json

    springMVC参数接收 作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可 如果不一样也可以,通过@RequestPara ...

  2. java 读入文件 FileInputStream

    package com.mkyong.io; import java.io.File; import java.io.FileInputStream; import java.io.IOExcepti ...

  3. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  4. 【裸裸的左偏树】BZOJ1455-罗马游戏

    [题目大意] 给出一些数和一些操作.M:合并两个数所在的集合,如果有任意一个数被删除则忽略操作:K:删除某个数所在集合中最小的数. [思路] 裸裸的,复习^ ^ #include<iostrea ...

  5. 1.4(JavaScript学习笔记) window对象的属性及方法

    一.window对象 window对象代表当前窗口,所有全局对象都是windows的属性, 例如document是window的属性,window.document.writer("&quo ...

  6. 在活动中使用菜单(Menu)

    任务名称:在活动使用菜单 任务现象:打开程序后,点击菜单按钮会出现2个选项,点击选项时会跳出相对应的提示框 步骤 1.创建一个项目,详细参考:http://8c925c9a.wiz03.com/sha ...

  7. Zookeeper启动和集群选举

    1. QuorumPeerMain运行 1)判断是采用单实例模式还是多实例模式启动QuorumPeerMain 2)在多实例模式下,加载启动参数中指定的配置文件 3)启动QuorumPeer publ ...

  8. Linux下Apache2.2和PHP5的安装配置

    Linux下Apache2.2和PHP5的安装配置 环境介绍 我安装使用的Linux版本为CentOS6.5最精简版,Apache为2.2.29,PHP版本为5.4.28. 系统安装 首先安装Cent ...

  9. UVA 10972 RevolC FaeLoN(边-双连通+缩点)

    很好的一道图论题,整整撸了一上午... 题意是给定一个无向图,要求将所有边变为有向边,求最少加入多少条有向边,使得该图强连通?这里先假设一个问题:给定一个无向子图,该子图具有怎样的性质才能使得将其无向 ...

  10. Apache commons——Apache旗下的通用工具包项目

    Apache Commons是Apache旗下的一个开源项目,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动 这里是Apache commons的官方网站 下面是工具的简单介绍: ...