vue.config.js文件重写打包工具配置信息

重写 Webpack 的配置信息

// cnpm install compression-webpack-plugin@6.1.1 -D       gzip压缩插件,需要引入
// cnpm i image-webpack-loader@8.1.0 --save-dev           图片压缩,不需要引入
// npm i webpack-bundle-analyzer@4.7.0 --save-dev         打包分析插件
// npm i speed-measure-webpack-plugin -D                  打包时间
// npm i hard-source-webpack-plugin -D                    构建时进行缓存const CompressionWebpackPlugin = require('compression-webpack-plugin') // 开启gzip压缩, 按需引用
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin // 引入打包分析插件
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin')
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
const webpack = require('webpack')const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i // 开启gzip压缩, 按需写入
const isProduction = process.env.NODE_ENV === 'production'
const BASE_URL = process.env.NODE_ENV === 'production' ? './' : './'
const path = require('path')function resolve (dir) {return path.join(__dirname, dir)
}module.exports = {// 其他配置可以走默认publicPath: BASE_URL, // 基本路径outputDir: 'dist', // 输出文件目录lintOnSave: process.env.NODE_ENV !== 'production', // 生产环境不进行eslint校验productionSourceMap: false, // 生产环境是否生成 sourceMap 文件// assetsDir: '',  // 静态文件要不要放在一个文件夹里,默认值是‘’,有需要可以自己改// webpack配置chainWebpack: config => {// 移除 preload(预载) 插件config.plugins.delete('preload')// 移除 prefetch(预取) 插件config.plugins.delete('prefetch')if (isProduction) {// 生产环境下---压缩图片config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({ bypassOnDebug: true }).end()}},configureWebpack: (config) => {// 生产和开发环境都有的配置config.devtool = 'source-map'// 开启缓存config.plugins.push(new HardSourceWebpackPlugin())// 配置别名Object.assign(config.resolve, {alias: {'@': path.resolve(__dirname, './src')}})// 生产环境下的配置if (isProduction) {// 添加webpack插件config.plugins.push(new SpeedMeasurePlugin(), // 构建时间new BundleAnalyzerPlugin() // 构建体积// 一些依赖,咱们也许只是用到了一部分,不必所有解析,好比moment中的语言包,咱们通常只用中文包就够了,因此能够这样配置:// new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /zh-cn/))// 打包文件大小配置config.performance = {maxEntrypointSize: 10000000, // 根据入口起点的最大体积,控制 webpack 何时生成性能提示。maxAssetSize: 30000000 // 根据单个资源体积(单位: bytes),控制 webpack 何时生成性能提示。}// 生产环境 优化打包chunk-vendors.js文件体积过大。Object.assign(config.optimization, {runtimeChunk: 'single',splitChunks: { // 默认的splitChunks会全部清空chunks: 'all',minSize: 20 * 1024 // chunks超过20000bit(20kb)将被单独打包// cacheGroups: { // 对node_modules下的库单独打包。暂时先不开启,可以看看打包体积后决定//   vendor: { // 默认的vendor.js//     test: /[\\/]node_modules[\\/]/, // 匹配映射文件//     name (module) {//       // get the name. E.g. node_modules/packageName/not/this/part.js//       // or node_modules/packageName//       const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]//       // npm package names are URL-safe, but some servers don't like @ symbols//       return `npm.${packageName.replace('@', '')}`//     }//   }// }}})// 清除console.logconfig.optimization.minimizer[0].options.terserOptions.compress.drop_console = true// 开启 gzip 压缩 文件// 注:生成的压缩文件以.gz为后缀,一般浏览器都已支持.gz的资源文件,在http请求的Request Headers 中能看到 Accept-Encoding:gzip。要使服务器返回.gz文件,还需要对服务器进行配置,根据Request Headers的Accept-Encoding标签进行鉴别,如果支持gzip就返回.gz文件。// 服务器配置参考:https://blog.csdn.net/a1983029606/article/details/115690820config.plugins.push(new CompressionWebpackPlugin({filename: '[path][base].gz',algorithm: 'gzip',test: productionGzipExtensions,threshold: 10240, // 只有大小大于该值的资源会被处理minRatio: 0.8 // 只有压缩率小于这个值的资源才会被处理}))}},// css相关配置css: {loaderOptions: {// 启用less中javascript支持less: {// less-lorder配置项 详见 https://www.webpackjs.com/loaders/less-loader/#lessoptionsjavascriptEnabled: true}}},// webpack-dev-server 相关配置devServer: {host: '0.0.0.0', // ip 本地port: 2023, // 设置端口号// inline: true, // 用于设置代码保存时是否自动刷新页面。默认:true// open: false, //配置自动启动浏览器,默认:false// hot: true, // 用于设置代码保存时是否进行热更新(局部刷新,不刷新整个页面)。默认:true// https: false, // 用于设置是否启用https,默认:falseproxy: {// 设置代理'/api': {// 代理名称   凡是使用/api开头的地址都是用此代理target: 'http://1.2.3.4:5000/', // 需要代理访问的api地址changeOrigin: true // 允许跨域请求// pathRewrite: {//   // 重写路径,替换请求地址中的指定路径//   '^/api': '/' // 将请求地址中的/api替换为空,也就是请求地址中不会包含/api/// }}}},// 第三方插件配置pluginOptions: {}
}

重写 Vite 的配置信息

vue.config.js 是一个可选的配置文件,可以在其中定义一些自定义的配置选项,以覆盖 Vite 的默认配置。你可以在这个文件中引入 Vite 的相关模块,然后使用 Vite 的 API 来修改或扩展默认配置。

以下是一个示例 vue.config.js 文件,用于重写 Vite 的配置信息:

// vue.config.js  module.exports = {  // 在这里定义你的自定义配置  // 例如,修改默认的构建输出目录  build: {  outDir: 'dist'  }  
}

在上面的示例中,我们通过 module.exports 导出一个对象,该对象包含一个 build 属性,用于修改默认的构建输出目录。在构建过程中,Vite 将使用这个新的输出目录来生成构建结果。

要使 vue.config.js 文件生效,确保将其放置在项目的根目录下,并在 Vite 的配置中引用它。例如,如果你使用的是 Vite 的 vite.config.js 配置文件,可以在其中添加以下代码来引用 vue.config.js

// vite.config.js  import { defineConfig } from 'vite'  
import vue from '@vitejs/plugin-vue'  
import path from 'path'  // 引用 vue.config.js 文件  
import { vueConfig } from './vue.config.js'  export default defineConfig({  plugins: [vue()],  // 将 vueConfig 合并到默认配置中  ...vueConfig,  resolve: {  alias: {  // 在这里添加自定义的别名配置  }  },  build: {  // 在这里添加自定义的构建配置  },  // 在这里添加其他 Vite 配置选项  
})

在上面的示例中,我们通过将 vueConfig 对象合并到默认配置中,将 vue.config.js 中的自定义配置应用到整个 Vite 项目中。你还可以根据需要添加其他的自定义配置选项,例如别名(alias)和构建选项(build options)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解pytest测试框架

在软件开发过程中,测试是确保软件质量的关键环节。为了提高测试效率和准确性,Python社区提供了许多优秀的测试框架,其中之一就是pytest。本文将详细介绍pytest的基本概念、特性、使用方法以及在实际项目中的应用。 一、pytest简介 pytest是…

【MATLAB源码-第95期】基于matlab的协作通信中(AF模式)中继选择算法对比。

操作环境: MATLAB 2022a 1、算法描述 1. 最大最小中继选择 (Max-Min Relay Selection):这种算法选择能够提供最大最小信号强度的中继。它首先计算所有可用中继的信号强度,然后选择那些在最差信道条件下仍能保持最高信号强度的中继。其目的…

Java File类详解(上)

Java File类详解 基础知识 File类是什么? File对象代表路径,路径分为相对路径和绝对路径。 ●File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径。 ●这个路径可以是存在的,也允许是不存在的。 如路径1:"…

BACnet I/O模块在水利环境监测全自动控制系统中的应用:稳定、高效、实时

前言 “绿水青山就是金山银山”,水利环境一直是国际生态部门关注的重点。随着经济的发展、针对水利环境的监管也日趋严格,尤其是重点河、湖水系、水源地、城市内河等成为重点监管对象,监管力度也愈来愈严格,监测布点密度不断加大。…

IntelliJ IDEA 智能(AI)编码工具插件

文章目录 通义灵码-阿里CodeGeeX-清华大学智谱AIBitoAmazon CodeWhisperer-亚马逊GitHub Copilot - 买不起CodeiumAIXcoder 仅仅自动生成单元测试功能 TestMe插件(免费)仅仅是模板填充,不智能。 Squaretest插件(收费)…

LightDB - datediff 函数增强[mysql兼容]

LightDB在 23.4 版本对原先支持的mysql的datediff函数进行了增强,由原先只支持如下函数匹配: DATEDIFF(expr1 timestamp,expr2 timestamp) RETURN integer DATEDIFF(expr1 text,expr2 text) RETURN integer扩展到支持如下函数匹配: DATEDIFF(expr1 tim…

JeecgBoot 框架升级 Spring Boot 3.1.5

Spring Boot 从 2.7.10升级到3.1.5有以下几个点需要注意。 JDK版本支持从JDK 17-19版本javax.servlet切换到jakarta.servletspring.redis配置切换为spring.data.redisSpring Cloud 2022.0.4Spring Cloud Alibaba 2022.0.0.0 除以上三点外,其它都是平滑升级&#…

微信小程序之猜数字和猜拳小游戏

目录 效果图 app.json 一、首页(index3)的代码 wxml代码 wxss代码 二、猜数字页面(index)代码 wxml代码 wxss代码 js代码 三.游戏规则页面(logs)代码 wxml代码 wxss代码 四.猜拳页面&#xff…

ElasticSearch篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、了解ElasticSearch 深翻页的问题及解决吗?二、熟悉ElasticSearch 性能优化三、ElasticSearch 查询优化手段有哪些?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

编程过程中出现bug如何应对?

编程过程中出现bug如何应对? 1.找错误原因 如果完全不知道出错的原因,或者说存在着很多错误的有原因,----》控制变量法 例如,昨天我在使用torchrun 多卡并行一个程序的时候,出现了大量的bug, 于是我将报错信息放在网…

visual Studio MFC 平台实现拉普拉斯和拉普拉斯与直方图均衡化与中值滤波相结合实现比较

拉普拉斯变换的原理与应用 本文使用visual Studio MFC 平台实现图像增强中的拉普拉斯变换,同时拉普拉斯一般不会单独使用,与其他平滑操作相结合,本文使用了拉普拉斯与直方图均衡化以及与中值滤波相结合,也对三种方式进行了对比 关…

如何提高Pycharm的使用体验?

汉化 文件---设置---插件---chinese---安装---重启ide 代码补全 tabnine 文件---设置---插件---tabnine---安装---重启ide 重启ide后生效,补全效果如下 自定义背景 文件---设置---外观---背景图像---选择图片---调整透明度保存即可 设置头部声明 英文版…

基于Java SSM框架实现社区疫情防控管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现社区疫情防控管理系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,社区疫情防控管理信息系统当然也不能排除在外。社区疫情防控管理信息系…

记录 | CUDA编程中使用#ifdef指令控制生成CPU和GPU代码

CUDA编程中使用#ifdef指令控制生成CPU和GPU代码 比如&#xff1a; #include <cstdio> #include <cuda_runtime.h>__host__ __device__ void say_hello(){ #ifdef __CUDA_ARCH__printf("Hello, world from GPU!\n"); #elseprintf("Hello, world fr…

Unity3D对CSV文件操作(创建、读取、写入、修改)

系列文章目录 Unity工具 文章目录 系列文章目录前言一、Csv是什么&#xff1f;二、创建csv文件2-1、构建表数据2-2、创建表方法2-3、完整的脚本&#xff08;第一种方式&#xff09;2-4、运行结果2-5、完整的脚本&#xff08;第二种方式&#xff09;2-6、运行结果2-7、想用哪种…

springboot075电影评论网站系统设计与实现

springboot075电影评论网站系统设计与实现 成品项目已经更新&#xff01;同学们可以打开链接查看&#xff01;需要定做的及时联系我&#xff01;专业团队定做&#xff01;全程包售后&#xff01; 2000套项目视频链接&#xff1a;https://pan.baidu.com/s/1N4L3zMQ9nNm8nvEVf…

ocpm @ ecpm @ ocpc@ ecpc

"o" 采用更准确的点击/转化率预估计值&#xff0c;将广告展示给最容易产生转化的用户。 以目标出价优化 千次展现成本 ocpm 以目标出价优化 单次点击出价 ocpc "e" 预估转化成本 ecpm 预估千次展现成本

flask 异步编程 asyncio

1. Flask 与异步编程 在编写Web应用程序时&#xff0c;有时需要调用可能需要一些时间的外部服务或执行耗时操作的函数。在传统的同步编程中&#xff0c;这将导致整个应用程序阻塞&#xff0c;直到该函数返回结果。为了提高应用程序的性能和响应能力&#xff0c;我们可以使用异…

Java中常用的垃圾回收器

在Java的世界里&#xff0c;"垃圾回收"是一个让许多开发者即侍俯首也感到神秘的术语。垃圾回收&#xff08;Garbage Collection, GC&#xff09;是Java虚拟机&#xff08;JVM&#xff09;的一个重要部分&#xff0c;它帮助开发者管理内存&#xff0c;确保程序能有效并…

面试题:公司规定所有接口都用 post 请求,这是为什么?

文章目录 前言get 与 post 的区别所有接口都用 post 请求&#xff1f;网友程墨 Morgan网友苏莉安网友大宽宽 前言 最近在逛知乎的时候发现一个有趣的问题&#xff1a;公司规定所有接口都用 post 请求&#xff0c;这是为什么&#xff1f; 看到这个问题的时候其实我也挺有感触的…