diff --git a/frontend/TS/package.json b/frontend/TS/package.json index 22163f3..672f0cc 100644 --- a/frontend/TS/package.json +++ b/frontend/TS/package.json @@ -3,12 +3,14 @@ "version": "0.1.0", "scripts": { "dev": "vite", - "build": "vue-tsc --noEmit && vite build --emptyOutDir", + "build:finally": "vue-tsc --noEmit && vite build --emptyOutDir", + "build": "vite build --emptyOutDir", "build:watch": "vue-tsc --noEmit && vite build --watch --emptyOutDir", "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.23" + "vue": "^3.2.23", + "vue-router": "^4.0.12" }, "devDependencies": { "@vitejs/plugin-vue": "^1.10.2", diff --git a/frontend/TS/src/App.vue b/frontend/TS/src/App.vue index df4e2d7..87149fa 100644 --- a/frontend/TS/src/App.vue +++ b/frontend/TS/src/App.vue @@ -1,21 +1,212 @@ - - - diff --git a/frontend/TS/src/assets/css/font.css b/frontend/TS/src/assets/css/font.css new file mode 100644 index 0000000..818e015 --- /dev/null +++ b/frontend/TS/src/assets/css/font.css @@ -0,0 +1,4 @@ +@font-face { + font-family: "JetBrainsMono"; + src: url("../fonts/JetBrainsMono-Medium.woff2"); +} diff --git a/frontend/TS/src/assets/css/reset.css b/frontend/TS/src/assets/css/reset.css new file mode 100644 index 0000000..82935ae --- /dev/null +++ b/frontend/TS/src/assets/css/reset.css @@ -0,0 +1,124 @@ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Bold.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Bold.woff2 new file mode 100644 index 0000000..023512c Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Bold.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-BoldItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-BoldItalic.woff2 new file mode 100644 index 0000000..f3e87a3 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-BoldItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBold.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBold.woff2 new file mode 100644 index 0000000..a8b78a9 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBold.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBoldItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBoldItalic.woff2 new file mode 100644 index 0000000..b54a2d5 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraBoldItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLight.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLight.woff2 new file mode 100644 index 0000000..edd6a68 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLight.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLightItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLightItalic.woff2 new file mode 100644 index 0000000..2a02a18 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-ExtraLightItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Italic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Italic.woff2 new file mode 100644 index 0000000..e8eeb4b Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Italic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Light.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Light.woff2 new file mode 100644 index 0000000..459bacf Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Light.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-LightItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-LightItalic.woff2 new file mode 100644 index 0000000..352f5d9 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-LightItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Medium.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Medium.woff2 new file mode 100644 index 0000000..484c9e6 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Medium.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-MediumItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-MediumItalic.woff2 new file mode 100644 index 0000000..e127994 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-MediumItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Regular.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Regular.woff2 new file mode 100644 index 0000000..8c862e3 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Regular.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBold.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBold.woff2 new file mode 100644 index 0000000..fce8cd8 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBold.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBoldItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBoldItalic.woff2 new file mode 100644 index 0000000..a14851f Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-SemiBoldItalic.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-Thin.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-Thin.woff2 new file mode 100644 index 0000000..7c61278 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-Thin.woff2 differ diff --git a/frontend/TS/src/assets/fonts/JetBrainsMono-ThinItalic.woff2 b/frontend/TS/src/assets/fonts/JetBrainsMono-ThinItalic.woff2 new file mode 100644 index 0000000..0676ba8 Binary files /dev/null and b/frontend/TS/src/assets/fonts/JetBrainsMono-ThinItalic.woff2 differ diff --git a/frontend/TS/src/assets/images/comeon.gif b/frontend/TS/src/assets/images/comeon.gif new file mode 100644 index 0000000..75e5c5b Binary files /dev/null and b/frontend/TS/src/assets/images/comeon.gif differ diff --git a/frontend/TS/src/assets/logo.png b/frontend/TS/src/assets/logo.png index f3d2503..d585a0d 100644 Binary files a/frontend/TS/src/assets/logo.png and b/frontend/TS/src/assets/logo.png differ diff --git a/frontend/TS/src/components/HelloWorld.vue b/frontend/TS/src/components/HelloWorld.vue index 2d61249..38ab9ef 100644 --- a/frontend/TS/src/components/HelloWorld.vue +++ b/frontend/TS/src/components/HelloWorld.vue @@ -1,52 +1,23 @@ - - - diff --git a/frontend/TS/src/components/public/OpenLink.vue b/frontend/TS/src/components/public/OpenLink.vue new file mode 100644 index 0000000..9cbf240 --- /dev/null +++ b/frontend/TS/src/components/public/OpenLink.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/frontend/TS/src/components/public/index.ts b/frontend/TS/src/components/public/index.ts new file mode 100644 index 0000000..d6a9182 --- /dev/null +++ b/frontend/TS/src/components/public/index.ts @@ -0,0 +1,10 @@ +import OpenLink from "@/components/public/OpenLink.vue"; + +// Encapsulate global components as plug-ins +// 将全局组件封装为插件 + +export default { + install(app) { + app.component(OpenLink.name, OpenLink); + }, +}; diff --git a/frontend/TS/src/main.ts b/frontend/TS/src/main.ts index 01433bc..a094e81 100644 --- a/frontend/TS/src/main.ts +++ b/frontend/TS/src/main.ts @@ -1,4 +1,5 @@ import { createApp } from 'vue' import App from './App.vue' +import router from "@/router"; -createApp(App).mount('#app') +createApp(App).use(router).mount('#app') diff --git a/frontend/TS/src/router/index.ts b/frontend/TS/src/router/index.ts new file mode 100644 index 0000000..a4330cb --- /dev/null +++ b/frontend/TS/src/router/index.ts @@ -0,0 +1,27 @@ +import { createRouter, createWebHashHistory, RouteRecordRaw} from "vue-router"; +import Home from "@/views/Home.vue"; + +const routes:Array = [ + { + path: "/", + name: "Home", + component: Home, + }, + { + path: "/about", + name: "About", + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: function () { + return import(/* webpackChunkName: "about" */ "../views/About.vue"); + }, + }, +]; + +const router = createRouter({ + history: createWebHashHistory(), + routes, +}); + +export default router; diff --git a/frontend/TS/src/views/About.vue b/frontend/TS/src/views/About.vue new file mode 100644 index 0000000..913d80d --- /dev/null +++ b/frontend/TS/src/views/About.vue @@ -0,0 +1,99 @@ + + + diff --git a/frontend/TS/src/views/Home.vue b/frontend/TS/src/views/Home.vue new file mode 100644 index 0000000..5788512 --- /dev/null +++ b/frontend/TS/src/views/Home.vue @@ -0,0 +1,83 @@ + + + + diff --git a/frontend/TS/vite.config.ts b/frontend/TS/vite.config.ts index 77f9c00..fde588a 100644 --- a/frontend/TS/vite.config.ts +++ b/frontend/TS/vite.config.ts @@ -1,10 +1,23 @@ import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; +import path from "path"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], + resolve: { + alias: { + "@": path.resolve(__dirname, "src"), + }, + }, build: { - outDir: "../dist", + outDir:"../dist", + rollupOptions: { + output: { + entryFileNames: `assets/[name].js`, + chunkFileNames: `assets/[name].js`, + assetFileNames: `assets/[name].[ext]`, + }, + }, }, }); diff --git a/frontend/index.js.tmpl.html b/frontend/index.js.tmpl.html new file mode 100644 index 0000000..bea7efa --- /dev/null +++ b/frontend/index.js.tmpl.html @@ -0,0 +1,13 @@ + + + + + + + {{.ProjectName}} + + +
+ + + diff --git a/frontend/index.ts.tmpl.html b/frontend/index.ts.tmpl.html new file mode 100644 index 0000000..ecb1f44 --- /dev/null +++ b/frontend/index.ts.tmpl.html @@ -0,0 +1,13 @@ + + + + + + + {{.ProjectName}} + + +
+ + + diff --git a/frontend/package.tmpl.json b/frontend/package.tmpl.json index bd4fd70..81bd621 100644 --- a/frontend/package.tmpl.json +++ b/frontend/package.tmpl.json @@ -5,7 +5,7 @@ "main": "", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "preinstall": "cp -f index.html JS/index.html &cp -f index.html TS/index.html && rm -rf index.html" + "postinstall": "cp -f index.js.html JS/index.html & cp -f index.ts.html TS/index.html && rm -rf *.html" }, "author": "{{.AuthorName}}", "license": "ISC",