diff --git a/frontend/index.html b/frontend/index.html
index 0f76151..2cd5080 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -14,7 +14,7 @@
- Home
- - Packages
+ - Packages
- Chat
- Wiki
- Repository
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index b84649b..c801c91 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -14,6 +14,7 @@
"vue-router": "^4.2.2"
},
"devDependencies": {
+ "@rollup/plugin-replace": "^5.0.2",
"@vitejs/plugin-vue": "^4.2.3",
"sass": "^1.62.1",
"standard": "^17.1.0",
@@ -505,6 +506,67 @@
"node": ">= 8"
}
},
+ "node_modules/@rollup/plugin-replace": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz",
+ "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "magic-string": "^0.27.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
+ "dev": true
+ },
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
@@ -3550,6 +3612,44 @@
"fastq": "^1.6.0"
}
},
+ "@rollup/plugin-replace": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz",
+ "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "magic-string": "^0.27.0"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ }
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
+ "dev": true
+ },
"@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 4893af5..1228d5e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -10,6 +10,7 @@
"lint": "standard"
},
"devDependencies": {
+ "@rollup/plugin-replace": "^5.0.2",
"@vitejs/plugin-vue": "^4.2.3",
"sass": "^1.62.1",
"standard": "^17.1.0",
diff --git a/frontend/src/api.js b/frontend/src/api.js
index 62ea4d0..c76f0c4 100644
--- a/frontend/src/api.js
+++ b/frontend/src/api.js
@@ -1,11 +1,9 @@
-const API_PKGLIST = 'https://bioarchlinux.org/api/pkglist.json'
-
export
async function requestPackageList () {
- return await (await fetch('/api/pkglist.json')).json()
+ return await (await fetch(`${__API_BASE__}/api/pkglist.json`)).json()
}
export
async function requestPackageInfo (pkg) {
- return await (await fetch(`/api/${pkg}.json`)).json()
+ return await (await fetch(`${__API_BASE__}/api/${pkg}.json`)).json()
}
diff --git a/frontend/vite.config.js b/frontend/vite.config.js
index 492892c..5984c6d 100644
--- a/frontend/vite.config.js
+++ b/frontend/vite.config.js
@@ -1,10 +1,20 @@
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
+import replace from '@rollup/plugin-replace'
import vue from '@vitejs/plugin-vue'
-export default defineConfig({
- plugins: [vue()],
+export default defineConfig(({command}) => { return {
+ plugins: [
+ replace({
+ // production / development environment api base
+ __API_BASE__: command === 'build' ? JSON.stringify('https://bioarchlinux.org/')
+ : JSON.stringify(''),
+ preventAssignment: true,
+ }),
+ vue(),
+ ],
+ // for import alias
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
@@ -16,4 +26,4 @@ export default defineConfig({
'/api': 'https://bioarchlinux.org'
}
}
-})
+}})