解读vue配置文件(vue.config.js)

'use strict'
const path = require('path')
const defaultSettings = require('./src/settings.js')
const CompressionPlugin = require('compression-webpack-plugin')function resolve(dir) {return path.join(__dirname, dir)
}const name = defaultSettings.title // 网址标题
const port = 8013 // 端口配置// All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = {// hash 模式下可使用// publicPath: process.env.NODE_ENV === 'development' ? '/' : './',publicPath: '/',outputDir: 'dist',assetsDir: 'static',lintOnSave: process.env.NODE_ENV === 'development',productionSourceMap: false,devServer: {port: port,open: true,overlay: {warnings: false,errors: true},proxy: {'/api': {target: process.env.VUE_APP_BASE_API,changeOrigin: true,pathRewrite: {'^/api': 'api'}},'/auth': {target: process.env.VUE_APP_BASE_API,changeOrigin: true,pathRewrite: {'^/auth': 'auth'}}}},configureWebpack: {// provide the app's title in webpack's name field, so that// it can be accessed in index.html to inject the correct title.name: name,resolve: {alias: {'@': resolve('src'),'@crud': resolve('src/components/Crud')}},plugins: [// https://www.ydyno.com/archives/1260.html 使用gzip解压缩静态文件new CompressionPlugin({test: /\.(js|css|html)?$/i, // 压缩文件格式filename: '[path].gz[query]', // 压缩后的文件名algorithm: 'gzip', // 使用gzip压缩minRatio: 0.8 // 压缩率小于1才会压缩})]},chainWebpack(config) {config.plugins.delete('preload') // TODO: need testconfig.plugins.delete('prefetch') // TODO: need test// set svg-sprite-loaderconfig.module.rule('svg').exclude.add(resolve('src/assets/icons')).end()config.module.rule('icons').test(/\.svg$/).include.add(resolve('src/assets/icons')).end().use('svg-sprite-loader').loader('svg-sprite-loader').options({symbolId: 'icon-[name]'}).end()// set preserveWhitespaceconfig.module.rule('vue').use('vue-loader').loader('vue-loader').tap(options => {options.compilerOptions.preserveWhitespace = truereturn options}).end()config// https://webpack.js.org/configuration/devtool/#development.when(process.env.NODE_ENV === 'development',config => config.devtool('cheap-source-map'))config.when(process.env.NODE_ENV !== 'development',config => {config.plugin('ScriptExtHtmlWebpackPlugin').after('html').use('script-ext-html-webpack-plugin', [{// `runtime` must same as runtimeChunk name. default is `runtime`inline: /runtime\..*\.js$/}]).end()config.optimization.splitChunks({chunks: 'all',cacheGroups: {libs: {name: 'chunk-libs',test: /[\\/]node_modules[\\/]/,priority: 10,chunks: 'initial' // only package third parties that are initially dependent},elementUI: {name: 'chunk-elementUI', // split elementUI into a single packagepriority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or apptest: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm},commons: {name: 'chunk-commons',test: resolve('src/components'), // can customize your rulesminChunks: 3, //  minimum common numberpriority: 5,reuseExistingChunk: true}}})config.optimization.runtimeChunk('single')})},transpileDependencies: ['vue-echarts','resize-detector']
}

这是一个Vue.js的配置文件,用于指定项目的构建和开发服务器的行为。让我们逐步解读:

  1. resolve 函数:

    • 用于解析路径。它被定义为简化创建目录的绝对路径的过程。
  2. nameport 常量:

    • name 设置为来自设置文件的标题。
    • port 设置为 8013,表示开发服务器的端口号。
  3. publicPath

    • 此选项指定项目的基本 URL。在这种情况下,设置为 '/',表示项目预期从域的根目录提供。
  4. outputDirassetsDir

    • outputDir 指定生产构建的输出目录。
    • assetsDir 指定输出目录内静态资产(图像、字体等)的目录。
  5. lintOnSave

    • 如果为 true,eslint-loader 将在开发时保存时运行,有助于强制执行编码标准。
  6. productionSourceMap

    • 如果设置为 false,将在生产构建中禁用源映射,可能会减小构建的大小。
  7. devServer

    • 开发服务器的配置,包括端口、是否在服务器启动时打开浏览器以及用于 API 请求的代理设置。
  8. configureWebpack

    • webpack 的额外配置。
    • 提供了 webpack 配置中应用程序的名称,解析别名以更轻松地导入,以及在生产构建期间使用 CompressionPlugin 进行 gzip 压缩。
  9. chainWebpack

    • 允许链接 webpack 配置。用于自定义内部 webpack 配置。
    • 包括用于 SVG 图标加载的设置,对其他 webpack 设置的调整,以及对某些环境中不必要的插件的优化。
  10. transpileDependencies

    • 一个需要使用 Babel 转译的依赖项数组。这在你的依赖项使用现代 JavaScript 语法需要转译以确保兼容性时很有用。

总体而言,这个配置文件提供了有关构建过程、开发服务器以及 webpack 配置的各种设置,使你能够定制 Vue.js 项目的各个方面。

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

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

相关文章

浏览器事件循环(事件轮询)

浏览器事件循环(事件轮询) 文章目录 浏览器事件循环(事件轮询)1.浏览器事件循环流程2.同步任务、异步任务、宏任务和微任务概念同步任务:异步任务:宏任务:微任务: 3.宏任务和微任务区别异步任务的分类:异步任务执行顺序…

从事铁路工作保护足部,穿什么劳保鞋更安全

铁路运输在我国交通运输业中起着骨干作用,为国民经济的可持续发展和人口流动做出了巨大贡献。安全是铁路运输不可忽视的问题,在作业场地随处能见到“安全就是生命,责任重于泰山”的安全标语,由此可见安全问题是放在首位的。 铁路施…

PyTorch深度学习实战(30)——Deepfakes

PyTorch深度学习实战(30)——Deepfakes 0. 前言1. Deepfakes 原理2. 数据集分析3. 使用 PyTorch 实现 Deepfakes3.1 random_warp.py3.2 Deepfakes.py 小结系列链接 0. 前言 Deepfakes 是一种利用深度学习技术生成伪造视频和图像的技术。它通过将一个人的…

用python实现word中所有图片变清晰

要使用Python将Word文档中的所有图片变清晰,你需要使用一些库,例如python-docx和OpenCV。以下是一个简单的示例,说明如何使用这些库来提高Word文档中图片的清晰度。 请注意,这种方法基于简单的图像增强技术,可能无法提…

学习Vue配置代理总结

今天学习了Vue的配置代理,当我们想要向服务器取回来数据时就先要向服务器发送请求,但前端发送请求的方式也有很多种,首先是发送请求的鼻祖JS的XMLHttpRequest(xhr),它操作起来相对麻烦,开发中也…

SpringBoot自定义Starter(@EnableXXX和META-INF的SPI自动添加)

目录 1. 自定义Starter1.1 场景和效果1.2 starter实现1.2.1 创建自定义starter项目1.2.2 把所有maven依赖导入1.2.3 实现公共代码逻辑1.2.4 添加方式一:实现RobotAutoConfiguration配置类1.2.5 添加方式二:实现RobotAutoConfiguration配置类 EnableRobo…

大数据日志数据量过大如何处理

如果是web端的埋点数据,我们可以对这些数据进行分流。 我们可以采用事件分流,步骤如下 定义事件类型: 根据埋点数据的内容,定义不同的事件类型。例如,可以有页面访问事件、按钮点击事件、表单提交事件等。 提取关键信…

Linux下如何快速调试I2C设备

Linux下如何快速调试I2C设备 目录 1 什么场景下需要快速调试I2C设备 2 如何快速调试I2C设备 3 如何获取I2C Tools工具集 3.1 获取I2C Tools工具集源码 3.2 编译I2C Tools工具集源码 3.3 为设备添加I2C Tools工具集 4 如何使用I2C Tools工具集 5 小结 1 什么场景下需要快…

强化app广告变现用户隐私合规,移动广告变现合规技巧

移动广告技术的发展帮助开发者极大提升了广告变现效率,APP作为用户个人信息处理的重要载体,自从《个人信息保护法》颁布以来,个人信息的使用已经成为监管重点,开发者强化合规意识,让广告变现业务“细水长流”&#xff…

Ansible Filter滤波器的使用

一、【说在前面】 Ansible Filter一般被称为滤波器或者叫过滤器。 这个东西初次听到以为是什么科学计算的东西,但是想来ansible不太可能有什么滤波操作,所以这个东西本质是一个数值筛选器,内置函数,本质是一个为了做区别化的工具…

AcrelEMS-CB商业建筑能源管理系统解决方案-安科瑞 蒋静

1概述 AcrelEMS-CB商业建筑能源管理系统,集电力监控、电能质量监测与治理、电气安全预警、能耗分析、照明控制、新能源使用、能源收费以及设备运维等功能于一体,通过一套系统对商业建筑的能源进行统一监控、统一运维和调度,系统可以通过WEB和…

QT基础篇(6)QT5图形与图片

1.QT5位置相关函数 在Qt5中,有一些与位置相关的函数可以帮助您处理窗口和控件的位置。下面是一些常用的位置相关函数: move(x, y): 将窗口或控件移动到屏幕上的指定位置,其中x和y表示要移动到的坐标。 resize(width, height): 调整窗口或控…

go切片参数传递用值还是指针

Go 中常用的切片 slice 数据结构是动态数组,切片长度并不固定,在容量不足的时候会自动扩容。 切片实质上是对一个底层数组的抽象视图,由 Go 运行时维护。在运行时,切片由如下的 SliceHeader 结构体表示,其中 Data 字段…

机器人说明书---名词解释030课_python语言_方法重写

这里写自定义目录标题 方法重写类属性与方法类的私有属性类的方法类的私有方法实例类的私有方法实例如下: 类的专有方法:视频讲解 方法重写 如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法,实例如下&…

【极光系列】springBoot集成Hibernate

【极光系列】springboot集成hibernate gitee地址 直接下载可用 https://gitee.com/shawsongyue/aurora.git 模块:aurora_hibernate mysql安装教程 参考我另外一篇文章,直接下载安装 https://blog.csdn.net/weixin_40736233/article/details/1355829…

数据库负载均衡部署(使用ipvadm ,docker)

文章目录 … 要在Docker中使用IPVS配置MariaDB数据库的高可用集群,并设置VIP地址为192.168.201.4,密码全部设为123456你可以按照以下步骤进行操作: 第一步 创建一个docker网络 docker network create --subnet192.168.200.0/24 mariadb_netw…

FPGA 原理图细节--画引脚

BGA引脚表示 1.1 FPGA此引脚要正确和清晰,会在“Package Pin”中用到次物理接口 1.2, MCU 只用管对应的GPIO逻辑接口就可以了 标识Bank电平 标识出对应Bank的电平,在电路设计中可以清晰的知道对应的脚位输出电平。在"IO std"也方便的选择 Ea…

芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台

IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用,该功能可在 IBM Cloud 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案&#xff0…

常见的限流算法

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 天下武学出同源 正所谓天下武学殊途同归&#xff…

fgetc函数和fputc函数

目录 getchar和putchargetc和putcfgetc和fputc 橙色 getchar和putchar int getchar(void); // 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数int putchar(int char); // 把参数 char 指定的字符(一个…