diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 34977b159..3a4891fd4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,7 +4,6 @@ on: push: branches: - "pro" - - "dev" jobs: check-version: diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 7a73a9421..9e15cde73 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -61,6 +61,10 @@ class IndexController extends InvokeController $array = Base::json2array(file_get_contents($hotFile)); $style = null; $script = preg_replace("/^(\/\/(.*?))(:\d+)?\//i", "$1:" . $array['APP_DEV_PORT'] . "/", asset_main("resources/assets/js/app.js")); + $proxyUri = env('VSCODE_PROXY_URI'); + if (is_string($proxyUri) && preg_match('/^https?:\/\//i', $proxyUri)) { + $script = preg_replace('/^(https?:\/\/|\/\/)[^\/]+/', rtrim($proxyUri, '/'), $script, 1); + } } else { $array = Base::json2array(file_get_contents($manifestFile)); $style = asset_main($array['resources/assets/js/app.js']['css'][0]); diff --git a/cmd b/cmd index 70959821c..c9d27fe45 100755 --- a/cmd +++ b/cmd @@ -175,7 +175,13 @@ web_build() { fi if [ "$type" = "dev" ]; then echo "" > ./index.html - env_set APP_DEV_PORT $(rand 20001 30000) + if [[ -z "$(env_get APP_DEV_PORT)" ]] || [[ -z "${VSCODE_PROXY_URI:-}" ]]; then + env_set APP_DEV_PORT $(rand 20001 30000) + fi + if [ -n "${VSCODE_PROXY_URI:-}" ]; then + VSCODE_PROXY_URI=$(APP_DEV_PORT="$(env_get APP_DEV_PORT)" node -p "process.env.VSCODE_PROXY_URI.replace(/\{\{port\}\}/g, process.env.APP_DEV_PORT || '')") + fi + env_set VSCODE_PROXY_URI "${VSCODE_PROXY_URI:-}" fi switch_debug "$type" # @@ -479,7 +485,7 @@ handle_install() { for vol in "${volumes[@]}"; do tmp_path="${WORK_DIR}/${vol}" mkdir -p "${tmp_path}" - chmod -R 775 "${tmp_path}" + find "${tmp_path}" -type d -exec chmod 775 {} \; rm -f "${tmp_path}/dootask.lock" cmda="${cmda} -v ${tmp_path}:/usr/share/${vol}" cmdb="${cmdb} touch /usr/share/${vol}/dootask.lock &&" diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 1b124b78c..cbfaa7961 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -2,6 +2,8 @@ const isElectron = !!(window && window.process && window.process.type && window. const isEEUIApp = window && window.navigator && /eeui/i.test(window.navigator.userAgent); const isSoftware = isElectron || isEEUIApp; +document.getElementById("app")?.setAttribute("data-preload", "false"); + import {languageName, switchLanguage as $L} from "./language"; import {isLocalHost} from "./components/Replace/utils"; diff --git a/resources/views/main.blade.php b/resources/views/main.blade.php index f61dd20bd..5134c300b 100755 --- a/resources/views/main.blade.php +++ b/resources/views/main.blade.php @@ -34,7 +34,7 @@ @extends('ie') -
+
PAGE LOADING
diff --git a/vite.config.js b/vite.config.js index ebfdb31d1..a89b2b2c3 100644 --- a/vite.config.js +++ b/vite.config.js @@ -22,6 +22,7 @@ export default defineConfig(({command, mode}) => { const env = loadEnv(mode, process.cwd(), '') const host = "0.0.0.0" const port = parseInt(env['APP_DEV_PORT']) + const proxy_uri = env['VSCODE_PROXY_URI'] if (command === 'serve') { const hotFile = path.resolve(__dirname, 'public/hot') @@ -80,6 +81,17 @@ export default defineConfig(({command, mode}) => { }) } + const serverHmr = {} + if (/^https?:\/\//i.test(proxy_uri)) { + const proxyUri = new URL(proxy_uri) + if (proxyUri) { + Object.assign(serverHmr, { + host: proxyUri.host, + clientPort: proxyUri.port || (/^https/.test(proxy_uri) ? 443 : 80) + }) + } + } + return { base: basePath, publicDir: publicPath, @@ -98,7 +110,8 @@ export default defineConfig(({command, mode}) => { '**/language/**', '**/electron/**', ] - } + }, + hmr: serverHmr }, resolve: { alias: {