欢迎光临殡葬网
详情描述

方法一:使用 Vite 配置(推荐)

vite.config.jsvite.config.ts 中添加 server 配置:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    open: true, // 自动打开浏览器
    host: 'localhost', // 可选的,设置主机
    port: 3000, // 可选的,设置端口
    // 可选:配置是否自动打开特定页面
    // open: '/index.html'
  }
})

方法二:使用 package.json 脚本

package.json 中配置启动命令:

{
  "scripts": {
    "dev": "vite --open",
    "build": "vite build",
    "preview": "vite preview"
  }
}

或者使用更具体的命令:

{
  "scripts": {
    "dev": "vite --open --host localhost --port 3000",
    "dev:custom": "vite --open http://localhost:3000",
    "build": "vite build",
    "preview": "vite preview --open"
  }
}

方法三:使用环境变量

.env.env.local 文件中设置:

VITE_OPEN_BROWSER=true

然后在 vite.config.js 中读取:

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '')

  return {
    plugins: [vue()],
    server: {
      open: env.VITE_OPEN_BROWSER === 'true',
      host: 'localhost',
      port: 3000
    }
  }
})

方法四:自定义浏览器打开(高级配置)

如果需要指定浏览器或打开特定 URL:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    open: {
      target: 'http://localhost:3000',
      app: {
        name: 'chrome', // 指定浏览器
        arguments: ['--incognito'] // 浏览器参数
      }
    },
    host: 'localhost',
    port: 3000
  }
})

方法五:使用跨平台解决方案

如果你需要兼容不同操作系统:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    open: process.platform === 'darwin' ? 'google chrome' : 'chrome',
    host: 'localhost',
    port: 3000
  }
})

方法六:创建自定义插件

如果需要更复杂的逻辑,可以创建自定义插件:

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

const autoOpenBrowser = () => {
  return {
    name: 'auto-open-browser',
    configureServer(server) {
      server.httpServer?.once('listening', () => {
        const { port } = server.config.server
        const url = `http://localhost:${port}`

        // 使用子进程打开浏览器
        const { exec } = require('child_process')
        const openCommand = process.platform === 'win32' 
          ? 'start'
          : process.platform === 'darwin'
          ? 'open'
          : 'xdg-open'

        exec(`${openCommand} ${url}`)
      })
    }
  }
}

export default defineConfig({
  plugins: [vue(), autoOpenBrowser()],
  server: {
    host: 'localhost',
    port: 3000
  }
})

完整示例配置

这里是一个完整的 vite.config.js 示例:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    // 自动打开浏览器
    open: true,

    // 主机名
    host: 'localhost',

    // 端口号
    port: 3000,

    // 是否允许跨域
    cors: true,

    // 代理配置(如果需要)
    proxy: {
      '/api': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    },

    // 热更新
    hmr: {
      overlay: true
    }
  },
  // 构建配置
  build: {
    outDir: 'dist',
    sourcemap: false,
    minify: 'terser'
  }
})

常见问题解决

端口被占用

server: {
open: true,
port: 3000,
strictPort: true // 如果端口被占用,会提示错误而不是自动换端口
}

多个项目同时运行

server: {
open: true,
port: 3000,
host: '127.0.0.1' // 使用特定 IP
}

在 Docker 或容器中运行

server: {
open: false, // 容器中通常不需要自动打开
host: '0.0.0.0', // 允许外部访问
port: 3000
}

最简单的方法是使用方法一,在 vite.config.js 中添加 server.open: true 配置即可。

相关帖子
东营市殡葬礼仪服务|白事服务办理,丧葬灵棚布置
东营市殡葬礼仪服务|白事服务办理,丧葬灵棚布置
大数据时代,如何理解个人信息被“匿名化”使用?
大数据时代,如何理解个人信息被“匿名化”使用?
东营市白事服务办理-白事追悼会,正规专业
东营市白事服务办理-白事追悼会,正规专业
东营市正规殡葬公司电话|殡仪服务一条龙,丧礼灵堂
东营市正规殡葬公司电话|殡仪服务一条龙,丧礼灵堂
东营市殡葬服务公司一条龙办理,殡葬热线,有竞争力的价格
东营市殡葬服务公司一条龙办理,殡葬热线,有竞争力的价格
反季节购买家电和电子产品,需要注意哪些潜在的消费风险与问题?
反季节购买家电和电子产品,需要注意哪些潜在的消费风险与问题?
2026年个税汇算清缴,新增了哪些可以税前扣除的项目?
2026年个税汇算清缴,新增了哪些可以税前扣除的项目?
拉萨市丧事服务-入殓化妆,安全快捷
拉萨市丧事服务-入殓化妆,安全快捷
2026年常见误区澄清:外嫁女不能继承的是宅基地本身还是使用权?
2026年常见误区澄清:外嫁女不能继承的是宅基地本身还是使用权?
个人养老金账户与基本养老保险、企业年金在税收优惠上有何不同之处?
个人养老金账户与基本养老保险、企业年金在税收优惠上有何不同之处?
安庆市殡葬一条龙-丧礼录像,24小时服务热线
安庆市殡葬一条龙-丧礼录像,24小时服务热线
太原市殡葬服务公司一站式办理-白事追悼会策划,24小时服务热线
太原市殡葬服务公司一站式办理-白事追悼会策划,24小时服务热线
在人工智能普及的背景下,专业技术人才如何保持自身不可替代性?
在人工智能普及的背景下,专业技术人才如何保持自身不可替代性?
2026年,远程医疗与线上健康管理服务能否帮助降低部分医疗开支?
2026年,远程医疗与线上健康管理服务能否帮助降低部分医疗开支?
竞业限制协议中约定的违约金数额,法律上是否存在一个合理的上限标准?
竞业限制协议中约定的违约金数额,法律上是否存在一个合理的上限标准?
常德市殡葬服务|白事丧事一条龙,冰棺出租服务
常德市殡葬服务|白事丧事一条龙,冰棺出租服务
在等待救护车时,对晕倒者进行哪些观察可以为医护人员提供关键信息?
在等待救护车时,对晕倒者进行哪些观察可以为医护人员提供关键信息?
合肥市殡葬服务热线-丧葬摄像,全城服务
合肥市殡葬服务热线-丧葬摄像,全城服务
海西殡葬服务公司|白事一条龙办理,白事布置
海西殡葬服务公司|白事一条龙办理,白事布置
2026年年轻人如何看待彩礼与嫁妆,传统习俗在现代社会有哪些新变化?
2026年年轻人如何看待彩礼与嫁妆,传统习俗在现代社会有哪些新变化?