增加子目录支持,Release添加子目录/nazhua/的构建

This commit is contained in:
hi2hi 2024-12-10 06:16:52 +00:00
parent 557951ede3
commit b41a7d34cd
4 changed files with 86 additions and 38 deletions

View File

@ -78,6 +78,18 @@ jobs:
- name: 打包v${{ steps.determine_version.outputs.version }}-cdn-loli.zip
run: zip -r v${{ steps.determine_version.outputs.version }}-cdn-loli.zip dist
- name: 构建哪吒v0子目录版本
env:
VITE_BASE_PATH: '/nazhua/'
VITE_NEZHA_VERSION: 'v0'
VITE_SARASA_TERM_SC_USE_CDN: '1'
VITE_USE_CDN: '1'
VITE_CDN_LIB_TYPE: 'jsdelivr'
run: npm run build
- name: 打包v0-nazhua.zip
run: zip -r v0-nazhua.zip dist
- name: 构建哪吒v0版本
env:
VITE_NEZHA_VERSION: 'v0'
@ -130,6 +142,16 @@ jobs:
asset_name: v${{ steps.determine_version.outputs.version }}-cdn-loli.zip
asset_content_type: application/zip
- name: Upload v0-nazhua.zip
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./v0-nazhua.zip
asset_name: v0-nazhua.zip
asset_content_type: application/zip
- name: Upload v0-dist.zip
uses: actions/upload-release-asset@v1
env:
@ -162,7 +184,7 @@ jobs:
echo -e "\n## 变更内容\n$(cat change.txt)" >> body.txt
# 添加其他发布说明
echo -e "\n哪吒V1请下载dist.zip\n哪吒V0请下载v0-dist.zip\nv${{ steps.determine_version.outputs.version }}-all.zip是全量包\nv${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip是jsdelivr引用版\nv${{ steps.determine_version.outputs.version }}-cdn-loli.zip是cdnjs的loli.net引用版" >> body.txt
echo -e "\n哪吒V1请下载dist.zip\n哪吒V0请下载v0-dist.zip\n哪吒V0/nazhua/子目录需求请下载v0-nazhua.zip\nv${{ steps.determine_version.outputs.version }}-all.zip是全量包\nv${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip是jsdelivr引用版\nv${{ steps.determine_version.outputs.version }}-cdn-loli.zip是cdnjs的loli.net引用版" >> body.txt
# 更新发布说明
gh release edit v${{ steps.determine_version.outputs.version }} --notes-file body.txt

View File

@ -6,6 +6,7 @@
"dev": "vite",
"build": "vite build",
"build:cdn": "cross-env VITE_SARASA_TERM_SC_USE_CDN=1 VITE_USE_CDN=1 vite build",
"build:nazhua": "cross-env VITE_BASE_PATH=/nazhua/ VITE_NEZHA_VERSION=v0 VITE_SARASA_TERM_SC_USE_CDN=1 VITE_USE_CDN=1 vite build",
"preview": "vite preview",
"lint": "eslint ."
},

View File

@ -1,5 +1,19 @@
import config from '@/config';
function getNezhaConfigUrl() {
const { nezhaPath } = config.nazhua;
if (nezhaPath.startsWith('http')) {
return nezhaPath;
}
const a = document.createElement('a');
if (nezhaPath === '/nezha/' && import.meta.env.VITE_BASE_PATH !== '/') {
[a.href] = window.location.href.split(import.meta.env.VITE_BASE_PATH);
} else {
a.href = nezhaPath;
}
return a.href;
}
const configReg = (type) => new RegExp(`${type} = JSON.parse\\('(.*)'\\)`);
// 格式化数据保证JSON.parse能够正常解析
const unescaped = (str) => {
@ -9,7 +23,7 @@ const unescaped = (str) => {
str2 = str2.replace(/\\\\/g, '\\');
return str2;
};
export default async () => fetch(config.nazhua.nezhaPath).then((res) => res.text()).then((res) => {
export default async () => fetch(getNezhaConfigUrl()).then((res) => res.text()).then((res) => {
let resMatch = res?.match?.(configReg(config.nazhua.nezhaV0ConfigType));
// 尝试兼容不同的nezha前台主题
if (!resMatch) {

View File

@ -7,52 +7,63 @@ import eslintPlugin from 'vite-plugin-eslint';
import svgLoader from 'vite-svg-loader';
import packageJson from './package';
dotenv.config({
path: '.env.development.local',
});
let proxy;
if (process.env.NODE_ENV === 'development') {
dotenv.config({
path: '.env.development.local',
});
proxy = {
'/api': {
target: process.env.API_HOST,
changeOrigin: true,
},
'/ws': {
target: process.env.PROXY_WS_HOST || process.env.WS_HOST,
changeOrigin: true,
ws: true,
rewrite: (e) => {
if (process.env.PROXY_WS_HOST) {
return `/proxy?wsPath=${process.env.WS_HOST}`;
}
return e;
},
},
'/api/v1/ws/server': {
target: process.env.PROXY_WS_HOST || process.env.WS_HOST,
changeOrigin: true,
ws: true,
rewrite: (e) => {
if (process.env.PROXY_WS_HOST) {
return `/proxy?wsPath=${process.env.WS_HOST}`;
}
return e;
},
},
};
if (process.env.VITE_BASE_PATH === '/') {
proxy['/nezha/'] = {
target: process.env.NEZHA_HOST,
changeOrigin: true,
rewrite: (e) => e.replace(/^\/nezha/, ''),
};
}
}
// 读取版本号
process.env.VITE_APP_VERSION = process.env.VERSION || packageJson.version;
// https://vite.dev/config/
export default defineConfig({
base: process.env.VITE_BASE_PATH || '/',
server: {
host: '0.0.0.0',
port: 3000,
hmr: {
overlay: false,
},
proxy: {
'/api': {
target: process.env.API_HOST,
changeOrigin: true,
},
'/ws': {
target: process.env.PROXY_WS_HOST || process.env.WS_HOST,
changeOrigin: true,
ws: true,
rewrite: (e) => {
if (process.env.PROXY_WS_HOST) {
return `/proxy?wsPath=${process.env.WS_HOST}`;
}
return e;
},
},
'/api/v1/ws/server': {
target: process.env.PROXY_WS_HOST || process.env.WS_HOST,
changeOrigin: true,
ws: true,
rewrite: (e) => {
if (process.env.PROXY_WS_HOST) {
return `/proxy?wsPath=${process.env.WS_HOST}`;
}
return e;
},
},
'/nezha/': {
target: process.env.NEZHA_HOST,
changeOrigin: true,
rewrite: (e) => e.replace(/^\/nezha/, ''),
},
},
proxy,
},
css: {
preprocessorOptions: {