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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 遗传算法工具箱约束怎么输入_遗传算法中怎么添加约束条件

    遗传算法工具箱约束怎么输入_遗传算法中怎么添加约束条件前言网上有很多博客讲解遗传算法,但是大都只是“点到即止”,虽然给了一些代码实现,但也是“浅尝辄止”,没能很好地帮助大家进行扩展应用,抑或是进行深入的研究。这是我的开篇之作~之前没有写博客的习惯,一般是将笔记存本地,但久而久之发现回看不便,而且无法与大家交流和学习。现特此写下开篇之作,若有疏漏之处,敬请指正,谢谢!本文对遗传算法的原理进行梳理,相关代码是基于国内高校学生联合团队开源…

    2025年11月3日
    5
  • ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)[通俗易懂]

    ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)[通俗易懂]ArcEngine10.4+VS2019(其他版本类似)开发环境配置教程由于ArcGIS、ArcEngine以及承载开发环境的VisualStudio的版本众多,其开发环境的配置也有不小的难度,故写此文章写给新入门ArcGIS二次开发的同学,帮助他们摆平入门的第一道坎。(当然不是,主要是写给我自己以后看的,省得我又要到处找教程)进行ArcGIS二次开发有很多种方式,比如现在主流的Python、AE+C#等。如题,这里说的是AE+C#开发的第一步,开发环境的配置。对进一步开发有兴趣的朋友可以去看我的CS

    2022年7月23日
    8
  • ios分屏_【iOS越狱】越狱源+插件整理更新

    ios分屏_【iOS越狱】越狱源+插件整理更新UN 官网 https unc0ver dev UN 开源 https github com pwn20wndstuf Undecimus releases 插件查询作者源 https www ios repo updates com 插件兼容性查询 https jlippold github io tweakCompati 自制 cydia 商店源 https www

    2025年9月29日
    5
  • 通信原理一个月能学会吗_通信原理第六版

    通信原理一个月能学会吗_通信原理第六版Socket通信原理对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:什么是TCP/IP、UDP?Socket在哪里呢?Socket是什么呢?你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(TransmissionControlPro…

    2022年10月17日
    5
  • 下载并安装windows版本的Redis

    打开官网:https://redis.io/download发现官网名没有提供Windows版本,只有Linux版本,费了一番周折,说是GitHub上才有地址是:https://github.com/MicrosoftArchive/redis/tags貌似比Linux的版本有点滞后,应该不影响,下载最新版本吧先download,下载mis版这个网站在国外,…

    2022年4月6日
    92
  • ReLU和BN层简析[通俗易懂]

    ReLU和BN层简析[通俗易懂]卷积神经网络中,若不采用非线性激活,会导致神经网络只能拟合线性可分的数据,因此通常会在卷积操作后,添加非线性激活单元,其中包括logistic-sigmoid、tanh-sigmoid、ReLU等。sigmoid激活函数应用于深度神经网络中,存在一定的局限性,当数据落在左右饱和区间时,会导致导数接近0,在卷积神经网络反向传播中,每层都需要乘上激活函数的导数,由于导数太小,这样经过几次传播后,靠…

    2022年10月9日
    4

发表回复

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

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