webpack基本配置项_xml配置文件有什么用

webpack基本配置项_xml配置文件有什么用前言上篇我们已经配置好了本地开发服务器,但是配置的相对比较凌乱,一个文件中有些是开发时用到的配置,有些是生成时用到的配置,有些是开发和生成都要用到的配置,所以我们这里把环境分为3个环境webpac

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

上篇我们已经配置好了本地开发服务器,但是配置的相对比较凌乱,一个文件中有些是开发时用到的配置,有些是生成时用到的配置,有些是开发和生成都要用到的配置,所以我们这里把环境分为3个环境

  • webpack.base.config.js:webpack基础配置,开发和生成环境都需要用到的配置
  • webpack.dev.config.js:开发环境的配置
  • webpack.prod.config.js:生成环境的配置
     

配置分离

development(开发环境) 和 production(生产环境) 这两个环境下的构建目标存在着巨大差异。在开发环境中,我们需要:强大的 source map 和一个有着 live reloading(实时重新加载) 或 hot module replacement(热模块替换) 能力的 localhost server。而生产环境目标则转移至其他方面,关注点在于压缩 bundle、更轻量的 source map、资源优化等,通过这些优化方式改善加载时间。由于要遵循逻辑分离,我们通常建议为每个环境编写彼此独立的 webpack 配置。

虽然,以上我们将 生产环境 和 开发环境 做了细微区分,但是,请注意,我们还是会遵循不重复原则(Don't repeat yourself - DRY),保留一个 "common(通用)" 配置。为了将这些配置合并在一起,我们将使用一个名为 webpack-merge 的工具。此工具会引用 "common" 配置,因此我们不必再在环境特定(environment-specific)的配置中编写重复代码。

我们先从安装 webpack-merge 开始,并将之前已经成型的那些代码进行分离:

npm install -D webpack-merge

安装完成以后,我们看下项目结构,我们新建一个build目录,然后再创建3个js文件,webpack.base.config.jswebpack.dev.config.jswebpack.prod.config.js
webpack基本配置项_xml配置文件有什么用

webpack.base.config.js配置如下:

const { VueLoaderPlugin } = require('vue-loader')
const path = require('path')
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, '../dist'),
    filename: 'bundle.js',
    // publicPath: "dist/"
  },
  resolve: {
    extensions: ['.json', '.js', '.vue', '.css'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
    },
  },
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
      {
        test: /\.less$/,
        use: [
          'vue-style-loader',
          'css-loader',
          'less-loader'
        ]
      },
      {
        test: /\.png/,
        type: 'asset'
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      }
    ],
  },
  plugins: [
    // 请确保引入这个插件!
    new VueLoaderPlugin(),
    new webpack.BannerPlugin("最终版权归jkc所有"),
    new HtmlWebpackPlugin({ template: 'index.html' }),
  ]
}

 

webpack.dev.config.js配置如下:

const { merge } = require('webpack-merge');
const common = require('./webpack.base.config.js');

module.exports = merge(common, {
  mode: 'development',
  devServer: {
    contentBase: "./dist",
    inline: true
  },
})

 

webpack.prod.config.js配置如下:

const { merge } = require('webpack-merge');
const common = require('./webpack.base.config.js');

module.exports = merge(common, {
  mode: 'production',
});

 

最后一步我们只需要把package.json文件中的scripts的脚本命令改成如下即可:

"scripts": {
    "build": "webpack --config ./build/webpack.prod.config.js",  // 生成环境打包
    "dev": "webpack serve --open --config ./build/webpack.dev.config.js"  // 本地开发环境
  },

如果我们正在处于开发阶段,就在终端执行npm run dev
如果我们已经开发完成,就在终端执行npm run build

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言实现循环队列

    C语言实现循环队列详解循环队列的巧妙之处

    2022年5月6日
    54
  • CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现

    CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现之前和大家分享了CANoe的基础使用(分析、仿真、测试、诊断),这篇文章将继续深入探讨如何使用CANoe/CANalyzer中的诊断功能。诊断用于在将ECU安装到系统之前或之后配置,维护,支持,控制和扩展ECU,例如,一辆车。诊断通常在请求-响应方案中执行:测试仪(客户端)向…

    2022年6月30日
    132
  • 网络编程API-下 (I/O复用函数)[通俗易懂]

    网络编程API-下 (I/O复用函数)

    2022年1月29日
    51
  • SpringBoot面试总结「建议收藏」

    SpringBoot面试总结「建议收藏」SpringBoot面试总结一.SpringBoot是什么?Springboot是一个脚手架(而非框架),构建于Spring框架(Framework)基础之上,基于快速构建理念,提供了自动配置功能,可实现其开箱即用特性(创建完一个基本的项目以后,可零配置或者少量配置即可运行我们的项目)。2.SpringBoot的核心特性是什么?起步依赖自动配置健康检查3.SpringBoot项目启动原理?SpringBoot项目在启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描启动类所在

    2022年6月7日
    32
  • CAS实现单点登录(SSO)经典完整教程

    CAS实现单点登录(SSO)经典完整教程一、简介1、cas是有耶鲁大学研发的单点登录服务器2、本教材所用环境Tomcat7.2JDK6CASService版本cas-server-3.4.8-rele

    2022年6月7日
    100
  • android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网「建议收藏」

    android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网「建议收藏」桌面锁屏时钟app是一款非常便捷的桌面锁屏时钟软件,桌面锁屏时钟app支持横屏竖屏自由切换,附带普通模式和沉浸模式,可以设置自己的日程提醒安排,桌面锁屏时钟app可以自己设置天气温度显示和背景皮肤,让用户清楚的知道时间。桌面锁屏时钟app特色1.你可以通过APP快速的了解当前的时间信息。2.添加每天的闹钟提醒以后,就可以让自己准时的起床了。3.在APP中设置自己的日程提醒安排,让APP提醒您不忘记…

    2022年9月29日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号