mirror of
https://github.com/hi2shark/nazhua.git
synced 2026-01-12 07:10:43 +08:00
✨ 增加子目录支持,Release添加子目录/nazhua/的构建
This commit is contained in:
parent
557951ede3
commit
b41a7d34cd
24
.github/workflows/release.yml
vendored
24
.github/workflows/release.yml
vendored
@ -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
|
||||
|
||||
@ -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 ."
|
||||
},
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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: {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user