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

本文详细介绍了Vue项目中vue.config.js的配置方法及Vite项目中vite.config.js的配置技巧,包括开发服务器配置、资源处理、插件管理等方面的内容。

vue配置大全

本人实例自用,不喜勿喷

vue.config.js的配置

module.exports = {
	devServer: {
        host: '',
        hot: true,
        port: 8086,
        disableHostCheck: true,//新版的webpack-dev-server出于安全考虑,默认检查hostname,
		//如果hostname不是配置内的,将中断访问。
        https: false, //如果是https代理的话,这个要打开的
        open: true,	// 是否在开启服务器后自动打开浏览器访问该服务器
        proxy: {
            '/prod-api': {
                target: 'http://10.20.1.158', //要跨域的地址
                changeOrigin: true, //是否开启跨域
            },
            '/api': {
                target: 'http://192.168.2.28:8106',
                changeOrigin: true,
                // pathRewrite: {'^/get': ''} //路径重写
            },
            headers: {
					Referer: 'https://127.0.0.1:8443'
			} //使用https代理
        }
    },
	lintOnSave: false, // lint语法检测关闭语法检查,主要针对ESlint里面定义却没有使用出现的报错
	outputDir:"dist", // build打包输出目录
    assetsDir:"static", // 静态文件输出目录,基于dist
    indexPath: "index.html",  // 输出html文件名
    productionSourceMap: false, // 取消.map文件的打包,加快打包速度
    publicPath:"./", //部署应用包时的基本 URL,//这个值也可以被设置为空字符串 ('') 或是相对路径 ('./'),
                     //这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径。
    configureWebpack: (config) => {
        // process.env为环境变量,分别对应.env.development文件和.env.production文件 此处表示加快开发环境打包速度
        if (process.env.NODE_ENV !== 'production') return;
        config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true;	//生产环境去掉console.log
        return {  // 此处配置webpack.config.js的相关配置
          plugins: [],
          performance: {},
        };
    },
}

vite.config.js的相关配置和注解

// vite.config.js

import { defineConfig } from 'vite' // 帮手函数,这样不用 jsdoc 注解也可以获取类型提示
import vue from '@vitejs/plugin-vue'
const { resolve } = require('path')
import { viteMockServe } from "vite-plugin-mock"

const localEnabled = process.env.USE_MOCK || false;
const prodEnabled = process.env.USE_CHUNK_MOCK || false;

// https://vitejs.dev/config/
export default () => defineConfig({
 plugins: [ //配置需要使用的插件列表
  vue(),
  viteMockServe({
   mockPath: "./src/server/mock",
   localEnabled: localEnabled, // 开发打包开关 true时打开mock  false关闭mock
   prodEnabled: prodEnabled,//prodEnabled, // 生产打包开关
   // 这样可以控制关闭mock的时候不让mock打包到最终代码内
   injectCode: `
    import { setupProdMockServer } from './mockProdServer';
    setupProdMockServer();
   `,
   logger: false, //是否在控制台显示请求日志
   supportTs:false //打开后,可以读取 ts 文件模块 打开后将无法监视 .js 文件
  })
 ],
 // 强制预构建插件包
 optimizeDeps: {
  //检测需要预构建的依赖项
  entries: [],
  //默认情况下,不在 node_modules 中的,链接的包不会预构建
  include: ['axios'],
  exclude:['your-package-name'] //排除在优化之外
 },
 //静态资源服务的文件夹
 publicDir: "public",
 base: './',
 //静态资源处理
 assetsInclude: "",
 //控制台输出的级别 info 、warn、error、silent
 logLevel: "info",
 // 设为false 可以避免 vite 清屏而错过在终端中打印某些关键信息
 clearScreen:true,
 resolve: {
  alias: [//配置别名
   { find: '@', replacement: resolve(__dirname, 'src') }
  ],
  // 情景导出 package.json 配置中的exports字段
  conditions: [],
  // 导入时想要省略的扩展名列表
  // 不建议使用 .vue 影响IDE和类型支持
  extensions:['.mjs','.js','.ts','.jsx','.tsx','.json']  
 },
 // css
 css: {
  // 配置 css modules 的行为
  modules: {  },
  // postCss 配置
  postcss: {
  },
  //指定传递给 css 预处理器的选项
  preprocessorOptions:{
   scss: {
    additionalData:`$injectedColor:orange;`
   }
  }
 },
 json: {
  //是否支持从 .json 文件中进行按名导入
  namedExports: true,
  //若设置为 true 导入的json会被转为 export default JSON.parse("..") 会比转译成对象字面量性能更好
  stringify:false
 },
 //继承自 esbuild 转换选项,最常见的用例是自定义 JSX
 esbuild: {
  jsxFactory: "h",
  jsxFragment: "Fragment",
  jsxInject:`import Vue from 'vue'`
 },
 //本地运行配置,以及反向代理配置
 server: {
  host: "localhost",
  https: false,//是否启用 http 2
  cors: true,//为开发服务器配置 CORS , 默认启用并允许任何源
  open: true,//服务启动时自动在浏览器中打开应用
  port: "9000",
  strictPort: false, //设为true时端口被占用则直接退出,不会尝试下一个可用端口
  force: true,//是否强制依赖预构建
  hmr: false,//禁用或配置 HMR 连接
  // 传递给 chockidar 的文件系统监视器选项
  watch: {
   ignored:["!**/node_modules/your-package-name/**"]
  },
  // 反向代理配置
  proxy: { 
   '/api': {
    target: "https://xxxx.com/",
    changeOrigin: true,
    rewrite: (path) => path.replace(/^/api/, '')
   }
  }
 },
 //打包配置
 build: {
  //浏览器兼容性  "esnext"|"modules"
  target: "modules",
  //指定输出路径
  outDir: "dist",
  //生成静态资源的存放路径
  assetsDir: "assets",
  //小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项
  assetsInlineLimit: 4096,
  //启用/禁用 CSS 代码拆分
  cssCodeSplit: true,
  //构建后是否生成 source map 文件
  sourcemap: false,
  //自定义底层的 Rollup 打包配置
  rollupOptions: {
  },
  //@rollup/plugin-commonjs 插件的选项
  commonjsOptions: {
  },
  //构建的库
  lib: {
  },
  //当设置为 true,构建后将会生成 manifest.json 文件
  manifest: false,
  // 设置为 false 可以禁用最小化混淆,
  // 或是用来指定使用哪种混淆器
  // boolean | 'terser' | 'esbuild'
  minify: "terser", //terser 构建后文件体积更小
  //传递给 Terser 的更多 minify 选项。
  terserOptions: {
  },
  //设置为 false 来禁用将构建后的文件写入磁盘
  write: true,
  //默认情况下,若 outDir 在 root 目录下,则 Vite 会在构建时清空该目录。
  emptyOutDir: true,
  //启用/禁用 brotli 压缩大小报告
  brotliSize: true,
  //chunk 大小警告的限制
  chunkSizeWarningLimit: 500
 },
 ssr: {
  // 列出的是要为 SSR 强制外部化的依赖
  external: [],
  //列出的是防止被 SSR 外部化依赖项
  noExternal: [
  ]
 }
})


---------------------
作者:luofei_create
来源:优快云
原文:https://blog.youkuaiyun.com/luofei_create/article/details/124985893
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:优快云,CNBLOG博客文章一键转载插件

### vite.config.ts 与 vue.config.js 配置详解及对比 #### vite.config.ts 配置详解 `vite.config.ts` 是 Vite 项目的主配置文件,支持使用 TypeScript 编写,提供类型检查更好的开发体验。它基于 ES 模块的构建工具,通过插件系统实现高度可扩展性。主要配置项如下: - **server**:用于定义开发服务器的行为,例如设置端口、代理等。 ```ts server: { port: 8888, // 设置开发服务器端口 proxy: { '/api': { target: '', // 后端接口地址 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') // 路径重写 } } } ``` 这个部分可以替代 `.env.development` 中的 `VITE_APP_PORT` `VITE_APP_TARGET_URL` 配置[^1]。 - **define**:定义全局常量替换方式,可用于暴露环境变量给客户端代码。 ```ts define: { __APP_ENV__: JSON.stringify(process.env.VITE_APP_BASE_API) } ``` - **plugins**:添加第三方插件以增强功能,例如 Vue 支持需要引入 `@vitejs/plugin-vue` 插件。 ```ts plugins: [ vue(), // 添加 Vue 插件 ] ``` - **build**:控制生产构建行为,包括输出目录、压缩选项等。 ```ts build: { outDir: 'dist', // 输出目录 assetsDir: 'assets', // 静态资源存放路径 minify: 'terser' // 使用 terser 压缩 JS } ``` - **resolve**:配置模块解析规则,例如别名扩展名自动解析。 ```ts resolve: { alias: { '@': path.resolve(__dirname, './src') // 设置 @ 指向 src 目录 }, extensions: ['.js', '.vue', '.json'] // 自动解析扩展名 } ``` #### vue.config.js 配置详解 `vue.config.js` 是 Vue CLI 提供的配置文件,用于自定义项目构建运行时的行为。虽然它主要用于 Vue2.x Vue3.x 的 CLI 创建的项目,但其灵活性丰富的内置配置使其仍然广泛使用。主要配置项如下: - **devServer**:开发服务器相关配置,类似于 Vite 的 `server` 配置。 ```js devServer: { port: 8080, // 开发服务器端口 proxy: { '/api': { target: '', // 后端接口地址 changeOrigin: true, pathRewrite: { '^/api': '' // 路径重写 } } } } ``` - **publicPath**:设置静态资源的公共路径,默认为 `/`,也可以根据部署需求动态调整。 ```js publicPath: process.env.NODE_ENV === 'production' ? '/production-subpath/' : '/' ``` - **chainWebpack** 或 **configureWebpack**:允许更细粒度地修改 Webpack 配置。 ```js chainWebpack: config => { config.module .rule('images') .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/i) .use('url-loader') .loader('url-loader'); } ``` - **outputDir**:指定构建输出目录,默认为 `dist`。 ```js outputDir: 'dist' ``` #### 对比分析 | 功能 | vite.config.ts | vue.config.js | | --- | --- | --- | | **语言支持** | 支持 TypeScript | 仅支持 JavaScript | | **默认构建速度** | 快速启动热更新,基于原生 ESM | 构建速度较慢,依赖 Webpack | | **插件生态** | 丰富的官方社区插件 | 成熟的 Vue CLI 插件体系 | | **配置复杂度** | 简洁易用,适合现代前端框架 | 更加灵活,但配置较为繁琐 | | **适用场景** | Vue3、React、Preact 等现代框架 | Vue2 Vue3 的传统项目 | 从性能现代化角度看,Vite 提供了更快的冷启动速度即时热更新,特别适合 Vue3 TypeScript 项目。而 Vue CLI 提供了更为完整的构建流程管理,适用于需要深度定制 Webpack 的场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值