diff --git a/src/core/audio/bgm.ts b/src/core/audio/bgm.ts index 89aab92..b409c83 100644 --- a/src/core/audio/bgm.ts +++ b/src/core/audio/bgm.ts @@ -1,4 +1,4 @@ -import { has } from '../../plugin/utils'; +import { has } from '@/plugin/utils'; import { ResourceController } from '../loader/controller'; export class BgmController extends ResourceController { diff --git a/src/core/audio/sound.ts b/src/core/audio/sound.ts index 8c2aeeb..543b195 100644 --- a/src/core/audio/sound.ts +++ b/src/core/audio/sound.ts @@ -1,6 +1,6 @@ -import { has } from '../../plugin/utils'; +import { has } from '@/plugin/utils'; import { AudioParamOf, AudioPlayer } from './audio'; -import resource from '../../data/resource.json'; +import resource from '@/data/resource.json'; import { ResourceController } from '../loader/controller'; type Panner = AudioParamOf; diff --git a/src/core/common/eventEmitter.ts b/src/core/common/eventEmitter.ts index d6cee9d..caa9e90 100644 --- a/src/core/common/eventEmitter.ts +++ b/src/core/common/eventEmitter.ts @@ -1,4 +1,4 @@ -import { has } from '../../plugin/utils'; +import { has } from '@/plugin/utils'; export interface EmitableEvent { [event: string]: (...params: any) => any; diff --git a/src/core/fx/shader.ts b/src/core/fx/shader.ts index 7abc261..2d68a7f 100644 --- a/src/core/fx/shader.ts +++ b/src/core/fx/shader.ts @@ -1,6 +1,6 @@ import { Animation, Ticker, hyper } from 'mutate-animate'; import { EmitableEvent, EventEmitter } from '../common/eventEmitter'; -import { ensureArray } from '../../plugin/utils'; +import { ensureArray } from '@/plugin/utils'; interface ShaderEvent extends EmitableEvent {} diff --git a/src/core/loader/load.ts b/src/core/loader/load.ts index a56d21e..9b09d6e 100644 --- a/src/core/loader/load.ts +++ b/src/core/loader/load.ts @@ -1,4 +1,4 @@ -import resource from '../../data/resource.json'; +import resource from '@/data/resource.json'; import { EmitableEvent, EventEmitter } from '../common/eventEmitter'; import { Resource, getTypeByResource } from './resource'; diff --git a/src/core/loader/resource.ts b/src/core/loader/resource.ts index afd9789..0e3609d 100644 --- a/src/core/loader/resource.ts +++ b/src/core/loader/resource.ts @@ -1,7 +1,7 @@ import axios, { AxiosResponse } from 'axios'; import { Disposable } from '../common/disposable'; -import { ensureArray } from '../../plugin/utils'; -import { has } from '../../plugin/utils'; +import { ensureArray } from '@/plugin/utils'; +import { has } from '@/plugin/utils'; import JSZip from 'jszip'; import { EmitableEvent, EventEmitter } from '../common/eventEmitter'; import { loading } from './load'; diff --git a/src/core/main/custom/hotkey.ts b/src/core/main/custom/hotkey.ts index 5698d61..b14cbd4 100644 --- a/src/core/main/custom/hotkey.ts +++ b/src/core/main/custom/hotkey.ts @@ -1,6 +1,6 @@ -import { KeyCode } from '../../../plugin/keyCodes'; -import { getLocFromMouseLoc } from '../../../plugin/ui/fixed'; -import { deleteWith, generateBinary, has, tip } from '../../../plugin/utils'; +import { KeyCode } from '@/plugin/keyCodes'; +import { getLocFromMouseLoc } from '@/plugin/ui/fixed'; +import { deleteWith, generateBinary, has, tip } from '@/plugin/utils'; import { EmitableEvent, EventEmitter } from '../../common/eventEmitter'; import { GameStorage } from '../storage'; diff --git a/src/core/main/custom/ui.ts b/src/core/main/custom/ui.ts index 0ac15ef..aa3037a 100644 --- a/src/core/main/custom/ui.ts +++ b/src/core/main/custom/ui.ts @@ -1,6 +1,6 @@ import { Component, shallowReactive } from 'vue'; import { EmitableEvent, EventEmitter } from '../../common/eventEmitter'; -import { KeyCode } from '../../../plugin/keyCodes'; +import { KeyCode } from '@/plugin/keyCodes'; import { Hotkey } from './hotkey'; interface FocusEvent extends EmitableEvent { diff --git a/src/core/main/init/ui.ts b/src/core/main/init/ui.ts index e0b5565..bdebcff 100644 --- a/src/core/main/init/ui.ts +++ b/src/core/main/init/ui.ts @@ -1,24 +1,24 @@ -import Book from '../../../ui/book.vue'; -import Toolbox from '../../../ui/toolbox.vue'; -import Equipbox from '../../../ui/equipbox.vue'; -import Settings from '../../../ui/settings.vue'; -import Desc from '../../../ui/desc.vue'; -import Skill from '../../../ui/skill.vue'; -import SkillTree from '../../../ui/skillTree.vue'; -import Fly from '../../../ui/fly.vue'; -import FixedDetail from '../../../ui/fixedDetail.vue'; -import Shop from '../../../ui/shop.vue'; -import Achievement from '../../../ui/achievement.vue'; -import Bgm from '../../../ui/bgmList.vue'; -import StatusBar from '../../../ui/statusBar.vue'; -import Mark from '../../../ui/markedEnemy.vue'; -import Fixed from '../../../ui/fixed.vue'; -import Chapter from '../../../ui/chapter.vue'; -import CompleteAchi from '../../../ui/completeAchievement.vue'; -import Start from '../../../ui/start.vue'; +import Book from '@ui/book.vue'; +import Toolbox from '@ui/toolbox.vue'; +import Equipbox from '@ui/equipbox.vue'; +import Settings from '@ui/settings.vue'; +import Desc from '@ui/desc.vue'; +import Skill from '@ui/skill.vue'; +import SkillTree from '@ui/skillTree.vue'; +import Fly from '@ui/fly.vue'; +import FixedDetail from '@ui/fixedDetail.vue'; +import Shop from '@ui/shop.vue'; +import Achievement from '@ui/achievement.vue'; +import Bgm from '@ui/bgmList.vue'; +import StatusBar from '@ui/statusBar.vue'; +import Mark from '@ui/markedEnemy.vue'; +import Fixed from '@ui/fixed.vue'; +import Chapter from '@ui/chapter.vue'; +import CompleteAchi from '@ui/completeAchievement.vue'; +import Start from '@ui/start.vue'; import { GameUi, UiController } from '../custom/ui'; import { Hotkey } from '../custom/hotkey'; -import { KeyCode } from '../../../plugin/keyCodes'; +import { KeyCode } from '@/plugin/keyCodes'; export const exitKey = new Hotkey('exitKey'); exitKey diff --git a/src/core/main/setting.ts b/src/core/main/setting.ts index 2eefc5b..04aaa4e 100644 --- a/src/core/main/setting.ts +++ b/src/core/main/setting.ts @@ -1,10 +1,10 @@ import { reactive } from 'vue'; import { EmitableEvent, EventEmitter } from '../common/eventEmitter'; -import { transition } from '../../plugin/uiController'; +import { transition } from '@/plugin/uiController'; import { loading } from '../loader/load'; import { hook } from './game'; import { GameStorage } from './storage'; -import { triggerFullscreen } from '../../plugin/utils'; +import { triggerFullscreen } from '@/plugin/utils'; type MotaSettingType = boolean | number | MotaSetting; diff --git a/src/core/plugin.ts b/src/core/plugin.ts index d4e3190..4d890bd 100644 --- a/src/core/plugin.ts +++ b/src/core/plugin.ts @@ -1,24 +1,24 @@ -import pop from '../plugin/pop'; -import ui from '../plugin/uiController'; -import use from '../plugin/use'; -import animate from '../plugin/animateController'; -import utils from '../plugin/utils'; -import status from '../plugin/ui/statusBar'; -import mark from '../plugin/mark'; -import chapter from '../plugin/ui/chapter'; -import fly from '../plugin/ui/fly'; -import chase from '../plugin/chase/chase'; -import fixed from '../plugin/ui/fixed'; -import webglUtils from '../plugin/webgl/utils'; -import shadow from '../plugin/shadow/shadow'; -import gameShadow from '../plugin/shadow/gameShadow'; -import achievement from '../plugin/ui/achievement'; -import completion, { floors } from '../plugin/completion'; -import path from '../plugin/fx/path'; -import gameCanvas from '../plugin/fx/gameCanvas'; -import noise from '../plugin/fx/noise'; -import smooth from '../plugin/fx/smoothView'; -import frag from '../plugin/fx/frag'; +import pop from '@/plugin/pop'; +import ui from '@/plugin/uiController'; +import use from '@/plugin/use'; +import animate from '@/plugin/animateController'; +import utils from '@/plugin/utils'; +import status from '@/plugin/ui/statusBar'; +import mark from '@/plugin/mark'; +import chapter from '@/plugin/ui/chapter'; +import fly from '@/plugin/ui/fly'; +import chase from '@/plugin/chase/chase'; +import fixed from '@/plugin/ui/fixed'; +import webglUtils from '@/plugin/webgl/utils'; +import shadow from '@/plugin/shadow/shadow'; +import gameShadow from '@/plugin/shadow/gameShadow'; +import achievement from '@/plugin/ui/achievement'; +import completion, { floors } from '@/plugin/completion'; +import path from '@/plugin/fx/path'; +import gameCanvas from '@/plugin/fx/gameCanvas'; +import noise from '@/plugin/fx/noise'; +import smooth from '@/plugin/fx/smoothView'; +import frag from '@/plugin/fx/frag'; import { Mota } from '.'; export function resolvePlugin() { diff --git a/tsconfig.json b/tsconfig.json index 0c21b42..ca08288 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,12 @@ "esModuleInterop": true, "lib": ["ESNext", "DOM", "DOM.Iterable"], "skipLibCheck": true, - "noEmit": true + "noEmit": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"], + "@ui/*": ["src/ui/*"] + } }, "include": [ "src/**/*.ts", diff --git a/vite.config.ts b/vite.config.ts index 93117b0..81a4668 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,6 +5,7 @@ import components from 'unplugin-vue-components/vite'; import vuejsx from '@vitejs/plugin-vue-jsx' import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; import motaConfig from './mota.config'; +import { resolve } from 'path'; const FSHOST = 'http://127.0.0.1:3000/'; @@ -21,6 +22,12 @@ export default defineConfig({ components({ resolvers: [AntDesignVueResolver()] }) ], base: `/games/${motaConfig.name}/`, + resolve: { + alias: { + '@': resolve(__dirname, './src'), + '@ui': resolve(__dirname, './src/ui') + } + }, build: { rollupOptions: { output: {