赞
踩
想要在打包后html文件的资源路径添加前缀,但是之前的Vue CLI 是使用publicPath
属性,在vite中就不是这个了,问了chatGPT后,回答是:
在当使用 Vite 打包应用程序时,可以使用 build.publicDir
或者build.base
配置选项指定要复制到构建输出目录的公共资源目录,这些资源包括 index.html 文件、静态资源文件、图标文件等。但是,Vite 默认情况下不支持类似 Vue CLI 中的 publicPath
选项,这意味着所有静态资源的引用路径都将是相对路径。
但是我添加了build.publicDir
和build.base
没有效果,打算在打包后使用脚本来自动添加。
vite.config.js
import { defineConfig } from 'vite' // 动态配置函数 import { createVuePlugin } from 'vite-plugin-vue2' // 打包后手动添加前缀脚本 const addPrefixPlugin = (prefix) => ({ name: 'add-prefix-plugin', async transformIndexHtml(html) { return html.replace(/(href|src)="(?!http|\/\/)/g, `$1="${prefix}`) }, }) export default () => defineConfig({ outDir: 'dist', // 打包输出目录 minify: true, // 是否压缩代码 sourceMap: true, // 是否生成sourceMap target: 'browser', // 打包目标 plugins: [createVuePlugin(), addPrefixPlugin('/goldCourse')], server: { open: true, //自动打开浏览器 proxy: { // 配置多个! "/api": { target: "http://192.168.0.111:8080", //测试环境 // 允许跨域 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, }, }, resolve: { // 别名 alias: [ { find: '@', replacement: '/src' } ] }, })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。