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

vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析 1.下载vue-cli npm install vue-cli -g vue-cli的使用与详细介绍,可以到github上获取https://github.com/vuejs/vue-cli 2.安装webpack项目模版 vue init 比如: vue init webpack my-project 之后可以在当前目录下下载该模版,然后 npm install 阅读详情

重写 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.log
      config.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.youkuaiyun.com/a1983029606/article/details/115690820
      config.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/#lessoptions
        javascriptEnabled: 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,默认:false
    proxy: {
      // 设置代理
      '/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)。

别再为SCI论文配图发愁了!手把手教你用PS+AI搞定从数据图到模式图的全流程 本文详细解析了如何利用Photoshop(PS)和Illustrator(AI)高效完成SCI论文配图的全流程,涵盖数据可视化、模式图设计及期刊适配性输出。通过实战案例,帮助科研人员掌握位图与矢量图的处理技巧,提升论文配图质量,满足不同期刊的出版要求。 阅读详情

相关推荐

国产操作系统替换方案:3个避坑指南

坑核心误区避坑核心原则关键动作坑一:选型只看信创信创目录=唯一标准兼容性优先,信创是约束三维评估(兼容性+信创+生态),分场景选型坑二:迁移只管能跑功能能跑=迁移成功性能确认+运维回归适配-压测-回归三阶段,基线对比坑三:不防二次迁移解决停服=完成任务一步到位,两级兼容信创路线优先,双轨制发布,终态规划。

weixin_43524706的博客 294

vue-cli3项目常用项配置

vue.config.js 完整的架构配置 const path = require('path'); const UglifyjsPlugin = require('uglifyjs-webpack-plugin') // 去掉注释 const CompressionwebpackPlugin = require('compression-webpack-plugin'); // 开启压缩 const { HashedModuleIdsPlugin } = require('webpack');

高先生的猫 1459

时序定江山,功耗写风骨——解读时序库lib文件的奥义【芯片设计 lib文件】

lib库,全称liberty library format file:它是Liberty时序文件的简称,使用 Liberty 语法来编写。它可以通过library compiler/dc转换成.db文件(database),供synopsis家的DC和PT使用,也可以通过spyglass的library compiler来生成sglib文件,供spyglass使用。他们是等价的,但db文件是二进制格式,人类不可读。

LogicYarn的博客 2601

vue.config.js中如何配置分包策略

代码分包是一种将应用的代码按照一定的规则和策略分割成不同的块,然后在需要的时候进行加载的方法。这可以帮助减小初始加载的文件大小,从而提高页面加载速度。Vue 提供了一种配置分包策略的方式,允许您将不同模块、库以及异步加载的代码分割成单独的文件,从而更好地利用浏览器的缓存机制。Vue.js 提供了灵活的分包策略配置选项,使得优化应用的加载性能变得更加简单。通过合理地配置分包策略,您可以将代码分割成更小的块,从而加快页面加载速度,提升用户体验。

sg_knight的专栏 3224

24位ADC的精度陷阱:为什么你的ADS1232实测性能不达标?

本文深入探讨了24位ADC芯片ADS1232在实际应用中性能不达标的原因,揭示了高精度ADC性能依赖周边电路设计的关键问题。通过分析电源系统、参考电压稳定性、PCB布局等常见陷阱,提供了优化方案和调试技巧,帮助工程师充分发挥ADS1232的潜力,实现接近理论值的测量精度。

weixin_28285943的博客 405

从零开始:在Windows WSL中搭建Openfoam7+blastfoam2.0.0开发环境(避坑大全)

本文详细指导在Windows WSL中搭建OpenFOAM 7与BlastFOAM 2.0.0开发环境,重点解析了安装过程中的常见“坑点”,如编译模式不匹配导致的符号错误,并提供了从系统准备、软件部署到环境验证的完整解决方案,帮助开发者高效构建CFD与爆炸模拟开发平台。

stem5的博客 526

vue打包后chunk-vendors太大解决方式

vue打包后chunk-vendors太大解决方式

weixin_44643019的博客 1812

Claude Code 学习笔记之一:理解 Agentic Loop 与内置工具

本文介绍了Claude Code这一终端智能助手的工作原理与使用方式。作者从ABAP开发经验出发,指出学习Claude Code的高级用法具有长期价值。文章详细解析了Claude Code的Agentic Loop机制:通过大语言模型进行推理,借助各类工具执行任务,并循环收集上下文、执行操作、验证结果三个步骤。系统阐述了Claude Code支持的五大类工具及其扩展方式,说明了其访问本地资源的范围和自治处理能力,同时介绍了权限模式等安全机制。最后提供了从小任务开始、充分探索、及时引导、使用CLAUDE.md

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 544

windows上部署vue3项目

使用npm run build打包之后,直接打开index.html无法看到网页内容。 需要在项目中新建一个vue.config.js的文件,内容如下: module.exports = { // 基本路径 baseURL已经过时 publicPath: './', //publicPath: process.env.NODE_ENV === "production" ? "/dist/":"./", // 输出文件目录 outputDir: 'dist',

Paranoia_yy的博客 1118

【异常】OpenClaw调用火山引擎大模型提示词 Agent failed before reply: All models failed (6): volcengine/kimi-k2-5-26

摘要: 本文针对OpenClaw调用火山引擎大模型服务时触发的全量熔断报错(All models failed)提供全链路排查方案。报错核心为服务熔断(cooldown)和模型不可用(model_not_found),主要源于账号权限、API凭证失效或模型标识错误。解决方案按优先级分步实施:1)校验账号状态与AK/SK有效性;2)核对官方模型标识;3)重启服务解除熔断;4)修复配置文件;5)通过原生API测试定位网络或服务端问题。日志分析(openclaw logs)可快速识别HTTP状态码(如401/40

奶爸的编程之路,也就一周冷个三天 837

22、自动化地图制作与Pandas数据处理

本文介绍了在ArcGIS Pro中使用arcpy.mp模块进行自动化地图制作的关键技术,涵盖地图元素的访问、移动与文本修改,以及将布局批量导出为JPEG、PNG和PDF格式的方法。同时,文章深入探讨了Pandas在数据处理和地理空间分析中的应用,特别是Spatially Enabled DataFrames(SEDFs)的使用。通过综合案例展示了地图更新与数据清洗、分析的结合,提升了地图制作与数据处理的效率,为GIS自动化工作流提供了实用指南。

w8x9y0z1的博客 78

vue.config.js配置configureWebpack的optimization splitChunks页面空白

确实通过这种方式解决:原因可能是这个:

寬真 1067

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

Vue.config.js中配置Proxy代理HTTPS

在开发基于Vue.js的应用时,经常会遇到前后端分离的情况,即前端应用与后端API服务器部署在不同的域名下。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。通过以上示例和技巧,我们可以在Vue CLI项目中灵活地配置HTTPS代理,从而在开发阶段无缝对接后端API,提高开发效率和安全性。中配置代理,可以让开发服务器充当代理服务器的角色,将请求转发到正确的API地址。有时候,我们可能不希望所有的请求都被代理,而是只有特定的路径。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 5633

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

vue-cli 3.0 打包(vue.config.js)修改js,css,img的输出路径

vue-cli3.*的打包配置都被抽象内置在项目的依赖中,可以使用命令来查看具体的项目配置信息(out.js表示输出的文件名称) vue inspect > out.js 因此,如果需要自定义配置,则需要在项目的根目录创建文件vue.config.js,并在该文件中进行具体的自定义配置。 修改js的配置如下: output: { // 输出重构 打包编译后的 文件...

fly_home_ysc的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vue2之vue.config.js最全配置教程

vue.config.js的简单配置

xhd11257339的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

vue.config.js 文件中webpack配置,webpack 多种应用场景配置, 优化及多页面应用开发

vue cli3 webpack精讲

gcyaozuodashen的博客 1万+

vue.config.js

vue.config.js

nalanxiaoxiao2011的博客 3087

vue.config.js配置文件

vue.config.js这个文件在创建完vue脚手架工程之后,需要自己手动创建,存放的是一些配置项,遵循json 书写规则。 这里,粘贴一个自己写好的配置项。 注意:配置项中内容不能为空,我的文件中pluginOptions第三方插件配置 已经 注释。 一定要注意,否则会报错"ValidationError: webpack Dev Server Invalid Options options should NOT have additional properties" const goo..

在下魔王ii的博客 891

系统配置vue.config.js(通用)和vue3中的vite.config.js的通用配置

vue.config.js的配置 module.exports = { devServer: { host: '', hot: true, port: 8086, disableHostCheck: true,//新版的webpack-dev-server出于安全考虑,默认检查hostname, //如果hostname不是配置内的,将中断访问。 https: false, open: true, // 是

luofei_create的博客 1万+

vue2之vue.config.js文件 常用配置教程

vue2之vue.config.js常用配置教程

蓝胖子的博客 2594

vue2的vue.config.js中简单配置代理跨域

个人简单配置proxy代理跨域

a99101的博客 1万+

vue-vue.config.js devServer配置

vue.config.js devServer配置

岂不闻 1216

前端vue框架配置基础信息详解分析

是 Babel 的配置文件,Babel 是一个 JavaScript 编译器,主要用于将现代 JavaScript 代码转换为向后兼容的版本,以便在旧版本的浏览器中运行。jsconfig.json是一个配置文件,主要用于配置 JavaScript 项目的编译选项和路径别名,特别是在使用。src\main.js、src\App.vue、public\index.html等启动用的核心代码文件。前端vue2、vue3框架是我们最近常用的框架,今天我们分析一下配置基础信息、详解其中的功能含义。

nandao158的博客 1086

vue.config.js常用配置

7.22vue.config.js1.项目启动(可略过)2.vue.config.vue常用配置2.1 publicPath2.2 outputDir2.3 assetsDir2.4 indexPath2.5 indexPath2.6 lintOnSave2.7 devServer总结 1.项目启动(可略过) 在 idea里安装插件 创建项目 可查看版本 运行 2.vue.config.vue常用配置 2.1 publicPath 项目发布的根路径 如: 发布时的路径得是app文件下(用ng

qq_47000934的博客 625

Vue项目搭建常用的配置文件,request.js和vue.config.js

1. 前端跨域解决方案 request.js用来请求数据,封装的代码如下: import axios from 'axios' const request = axios.create({ baseURL: '/api', // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!! timeout: 5000 ......

qq_57558631的博客 900
上一篇: 浅谈ArrayBuffer、Blob和File、FileReader
下一篇: 小程序商城活动页面怎么生成二维码
jsPao
博客等级 码龄7年 549粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值