Vite 将 plugins 分离出来

原本的 vite.config.ts

import { fileURLToPath, URL } from 'node:url'

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

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

plugins 分离出来后

vite.config.ts

import {ConfigEnv, defineConfig, loadEnv} from 'vite'
import {createVitePlugins} from "./build/plugin";
import {resolve} from "node:path";

// https://vitejs.dev/config/
export default defineConfig(({mode}: ConfigEnv) => {
  const env = loadEnv(mode, process.cwd(), '')

  return {
    base: "/",
    plugins: createVitePlugins(),
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src')
      }
    }
  }
})

build/plugin/index.ts

import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";

export function createVitePlugins() {
    const plugins: any[] = [
        vue(),
        vueJsx(),
    ]

    return plugins
}

tsconfig.node.json"include" 增加 "build/**/*.ts"

{  
  "extends": "@tsconfig/node20/tsconfig.json",  
  "include": [  
    "vite.config.*",  
    "vitest.config.*",  
    "cypress.config.*",  
    "nightwatch.conf.*",  
    "playwright.config.*",  
    "build/**/*.ts"  <------- 这里
  ],  
  "compilerOptions": {  
    "composite": true,  
    "noEmit": true,  
    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",  
  
    "module": "ESNext",  
    "moduleResolution": "Bundler",  
    "types": ["node","vite/client"],  
  }  
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在当前的后端分离情况下,部署vite时可能会遇到一些问题。其中一个常见的问题是在部署到根路径时打开页面报404错误。这个问题可以通过Nginx的配置来解决。在Nginx的配置文件中,可以使用`try_files`指令来尝试查找对应的文件,如果找不到则返回指定的文件。另外,还需要配置`proxy_pass`指令来将请求代理到后端服务器。具体的配置可以参考以下示例: ``` upstream serve_backend { server 127.0.0.1:9001; server 127.0.0.1:9004; } server { listen 9000; server_name localhost; location / { alias html/statics/; try_files $uri $uri/ /index.html last; index index.html index.htm; proxy_pass http://serve_backend/; proxy_next_upstream error timeout http_500; proxy_http_version 1.1; proxy_set_header Connection ""; add_header backendIp $upstream_addr; add_header backendCode $upstream_status; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; } } ``` 这样配置后,Nginx会将请求代理到后端服务器,并在找不到对应文件时返回index.html文件,从而解决404错误的问题。希望对你有帮助!\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [前后端分离的情况下使用Nginx部署Vite项目时静态资源被代理的问题](https://blog.csdn.net/Wrysmile0308/article/details/129623198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue3学习笔记-知识结构-前后端分离](https://blog.csdn.net/weixin_44082271/article/details/128406387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值