vue.js 如何设置vite.config.js基础公共路径?

ev7lccsx  于 2023-01-26  发布在  Vue.js
关注(0)|答案(2)|浏览(333)

我尝试为我的开发和生产环境设置一个基本url,但是vitejs配置没有解析。
根据vitejs,您可以在配置选项中设置在开发或生产环境中使用的基本公共路径。
从命令行运行vite时,Vite将自动尝试解析项目根目录中名为vite.config.js的配置文件。
问题是我的应用程序请求不通过'http://localhost:8080/',而是仍然附加到默认的服务端口http://localhost:3000/
我目前的配置如下:

// vite.config.js
export default {
  base: 'http://localhost:8080/'
}
// packages.json
{
  "name": "vue3ui",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  },
  "dependencies": {
    ...,
    "vue": "^3.0.11"
  },
  "devDependencies": {
    "@vue/compiler-sfc": "^3.0.11",
    "vite": "^1.0.0-rc.13"
  }
}
blmhpbnm

blmhpbnm1#

不完全清楚我,但我会尽量给你一个答案,以实现你想要的。
我正在尝试为我的开发环境和生产环境设置一个基本URL

    • 编辑:我再次阅读了您的问题,我认为您正在寻找此答案的要点C**。
    • 应在vite.config.js中进行更改**
    • A)**您希望将运行端口从3000更改为8080,请调整server.port
server: {
  port: '8080'
}
    • B)**但是,如果您希望在localhost:3000上运行并将请求转发到localhost:8080,则必须调整server.proxy
server: {
    proxy: {
      '/': {
        target: 'http://localhost:8080/'
      },

      '/admin': {
        target: 'http://localhost:8081/'
      }
    }
  }

示例:

  • '/':将所有请求代理到localhost:8080
  • '/admin':将仅代理以/admin作为端点的请求到http://localhost:8081
    • C)**根据开发或生产环境更改基本路径

.env文件:

// .env
 
// Running locally
APP_ENV=local
// you change port of local/dev here to :8000
// do not forget to adjust `server.port`
ASSET_URL=http://localhost:3000
 
// Running production build
APP_ENV=production
ASSET_URL=https://your-prod-asset-domain.com

vite.config.js

const ASSET_URL = process.env.ASSET_URL || '';

export default { 
  base: `${ASSET_URL}/dist/`,

  [...]
}

如果这不是你要找的,请更精确,我会编辑我的答案。
有关详细信息,请访问官方文档www.example.comhttps://vitejs.dev/config/#server-options

qojgxg4l

qojgxg4l2#

我想我明白TC想要解决什么了。他有1个build用于devprodenvs。
但这取决于环境变量,他有一个不同的基本路径。

**答案:**vitejs.dev/guide/build.html#advanced-base-options目前,这是一项实验性功能

experimental: {
  renderBuiltUrl(filename: string, { hostType }: { hostType: 'js' | 'css' | 'html' }) {
    if (['js', 'css'].includes(hostType)) {
      return { runtime: `window.__getFile(${JSON.stringify(filename)})` }
    } else {
      return { relative: true }
    }
  }
}

并创建全局函数

window.__getFile = function(file){
  if (window.location.host.includes('dev')) {
    return `http://cdn.dev/${file}`
  }
  return `http://cdn.prod/${file}`
}

P.S.对不起,我找不到任何带有port的示例

相关问题