fix: 生产环境加载问题

This commit is contained in:
unanmed 2024-03-07 20:13:07 +08:00
parent c84eebc88c
commit 340d18a1f0
5 changed files with 71 additions and 21 deletions

View File

@ -1,4 +1,3 @@
vite.config.ts
public/project/data.js
story.md
public/project/floors/*.js

View File

@ -160,13 +160,13 @@
</div>
<div id="root"></div>
<!-- injection -->
<script src='libs/thirdparty/lz-string.min.js'></script>
<script src='libs/thirdparty/priority-queue.min.js'></script>
<script src='libs/thirdparty/localforage.min.js'></script>
<script src='libs/thirdparty/zip.min.js'></script>
<script src="libs/thirdparty/lodash.min.js"></script>
<script id='dataScript' src='project/data.js'></script>
<script id='mainScript' src='main.js'></script>
<script nomodule src='libs/thirdparty/lz-string.min.js'></script>
<script nomodule src='libs/thirdparty/priority-queue.min.js'></script>
<script nomodule src='libs/thirdparty/localforage.min.js'></script>
<script nomodule src='libs/thirdparty/zip.min.js'></script>
<script nomodule src="libs/thirdparty/lodash.min.js"></script>
<script nomodule id='dataScript' src='project/data.js'></script>
<script nomodule id='mainScript' src='main.js'></script>
<script src="/src/main.ts" type="module"></script>
</body>

View File

@ -1,13 +1,53 @@
import { createApp } from 'vue';
import './game/index';
import './core/index';
import App from './App.vue';
import './styles.less';
import 'ant-design-vue/dist/antd.dark.css';
import 'ant-design-vue/dist/antd.dark.less';
export * from './game/system';
createApp(App).mount('#root');
const list = [
'libs/thirdparty/lz-string.min.js',
'libs/thirdparty/priority-queue.min.js',
'libs/thirdparty/localforage.min.js',
'libs/thirdparty/zip.min.js',
'project/data.js',
'main.js'
];
main.init('play');
main.listen();
load();
async function load() {
await loadJsList(list);
await import('./game/index');
await import('./core/index');
const { default: App } = await import('./App.vue');
createApp(App).mount('#root');
main.init('play');
main.listen();
}
function loadJsList(list: string[]) {
return Promise.all(
list.map(v => {
return loadJs(v);
})
);
}
function loadJs(src: string) {
const script = document.createElement('script');
script.src = src;
script.crossOrigin = 'anonymous';
document.body.appendChild(script);
return new Promise<void>(res => {
script.addEventListener(
'load',
() => {
res();
},
{ once: true }
);
});
}

View File

@ -1,5 +1,10 @@
// 部分全局css特效
html,
body {
background-color: black;
}
#root {
position: fixed;
display: block;

View File

@ -2,9 +2,9 @@ import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import legacy from '@vitejs/plugin-legacy';
import components from 'unplugin-vue-components/vite';
import vuejsx from '@vitejs/plugin-vue-jsx'
import vuejsx from '@vitejs/plugin-vue-jsx';
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
import dts from 'vite-plugin-dts'
import dts from 'vite-plugin-dts';
import { resolve } from 'path';
// @ts-ignore
import postcssPreset from 'postcss-preset-env';
@ -16,7 +16,13 @@ export default defineConfig({
plugins: [
vue(),
vuejsx(),
components({ resolvers: [AntDesignVueResolver()] })
components({
resolvers: [
AntDesignVueResolver({
importStyle: false
})
]
})
],
base: `./`,
resolve: {
@ -67,18 +73,18 @@ export default defineConfig({
changeOrigin: true,
rewrite(path) {
return './' + path.replace(/^\/all/, '');
},
}
},
'^/forceTem/.*': {
target: FSHOST,
changeOrigin: true,
rewrite(path) {
return './' + path.replace(/^\/forceTem/, '');
},
}
}
},
watch: {
ignored: ['**/public/**']
},
}
}
});