Haris Razis
4 years ago
19 changed files with 27066 additions and 12 deletions
@ -1,11 +1,16 @@ |
|||||
FROM node:latest |
FROM node:latest |
||||
|
|
||||
WORKDIR /usr/src/app |
RUN npm install -g http-server |
||||
|
|
||||
|
WORKDIR /app |
||||
|
|
||||
COPY package*.json ./ |
COPY package*.json ./ |
||||
|
|
||||
RUN npm install |
RUN npm install |
||||
|
|
||||
COPY . . |
COPY . . |
||||
|
|
||||
EXPOSE 6000 |
RUN npm run build |
||||
CMD [ "node", "index.js" ] |
|
||||
|
EXPOSE 8080 |
||||
|
CMD [ "http-server", "dist" ] |
@ -0,0 +1,19 @@ |
|||||
|
# web |
||||
|
|
||||
|
## Project setup |
||||
|
``` |
||||
|
npm install |
||||
|
``` |
||||
|
|
||||
|
### Compiles and hot-reloads for development |
||||
|
``` |
||||
|
npm run serve |
||||
|
``` |
||||
|
|
||||
|
### Compiles and minifies for production |
||||
|
``` |
||||
|
npm run build |
||||
|
``` |
||||
|
|
||||
|
### Customize configuration |
||||
|
See [Configuration Reference](https://cli.vuejs.org/config/). |
@ -0,0 +1,5 @@ |
|||||
|
module.exports = { |
||||
|
presets: [ |
||||
|
'@vue/cli-plugin-babel/preset' |
||||
|
] |
||||
|
} |
@ -1 +0,0 @@ |
|||||
console.log('hello world') |
|
File diff suppressed because it is too large
@ -1,11 +1,30 @@ |
|||||
{ |
{ |
||||
"name": "web", |
"name": "web", |
||||
"version": "1.0.0", |
"version": "0.1.0", |
||||
"description": "", |
"private": true, |
||||
"main": "index.js", |
|
||||
"scripts": { |
"scripts": { |
||||
"test": "echo \"Error: no test specified\" && exit 1" |
"serve": "vue-cli-service serve", |
||||
|
"build": "vue-cli-service build" |
||||
}, |
}, |
||||
"author": "", |
"dependencies": { |
||||
"license": "ISC" |
"core-js": "^3.6.5", |
||||
|
"vue": "^3.0.0", |
||||
|
"vue-class-component": "^8.0.0-0", |
||||
|
"vue-router": "^4.0.0-0", |
||||
|
"vuex": "^4.0.0-0" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@vue/cli-plugin-babel": "~4.5.0", |
||||
|
"@vue/cli-plugin-router": "~4.5.0", |
||||
|
"@vue/cli-plugin-typescript": "~4.5.0", |
||||
|
"@vue/cli-plugin-vuex": "~4.5.0", |
||||
|
"@vue/cli-service": "~4.5.0", |
||||
|
"@vue/compiler-sfc": "^3.0.0", |
||||
|
"typescript": "~3.9.3" |
||||
|
}, |
||||
|
"browserslist": [ |
||||
|
"> 1%", |
||||
|
"last 2 versions", |
||||
|
"not dead" |
||||
|
] |
||||
} |
} |
||||
|
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,17 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
||||
|
<title><%= htmlWebpackPlugin.options.title %></title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<noscript> |
||||
|
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
||||
|
</noscript> |
||||
|
<div id="app"></div> |
||||
|
<!-- built files will be auto injected --> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,30 @@ |
|||||
|
<template> |
||||
|
<div id="nav"> |
||||
|
<router-link to="/">Home</router-link> | |
||||
|
<router-link to="/about">About</router-link> |
||||
|
</div> |
||||
|
<router-view/> |
||||
|
</template> |
||||
|
|
||||
|
<style> |
||||
|
#app { |
||||
|
font-family: Avenir, Helvetica, Arial, sans-serif; |
||||
|
-webkit-font-smoothing: antialiased; |
||||
|
-moz-osx-font-smoothing: grayscale; |
||||
|
text-align: center; |
||||
|
color: #2c3e50; |
||||
|
} |
||||
|
|
||||
|
#nav { |
||||
|
padding: 30px; |
||||
|
} |
||||
|
|
||||
|
#nav a { |
||||
|
font-weight: bold; |
||||
|
color: #2c3e50; |
||||
|
} |
||||
|
|
||||
|
#nav a.router-link-exact-active { |
||||
|
color: #42b983; |
||||
|
} |
||||
|
</style> |
After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,64 @@ |
|||||
|
<template> |
||||
|
<div class="hello"> |
||||
|
<h1>{{ msg }}</h1> |
||||
|
<p> |
||||
|
For a guide and recipes on how to configure / customize this project,<br> |
||||
|
check out the |
||||
|
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>. |
||||
|
</p> |
||||
|
<h3>Installed CLI Plugins</h3> |
||||
|
<ul> |
||||
|
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li> |
||||
|
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li> |
||||
|
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li> |
||||
|
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target="_blank" rel="noopener">typescript</a></li> |
||||
|
</ul> |
||||
|
<h3>Essential Links</h3> |
||||
|
<ul> |
||||
|
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li> |
||||
|
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li> |
||||
|
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li> |
||||
|
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li> |
||||
|
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li> |
||||
|
</ul> |
||||
|
<h3>Ecosystem</h3> |
||||
|
<ul> |
||||
|
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li> |
||||
|
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li> |
||||
|
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li> |
||||
|
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li> |
||||
|
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script lang="ts"> |
||||
|
import { Options, Vue } from 'vue-class-component'; |
||||
|
|
||||
|
@Options({ |
||||
|
props: { |
||||
|
msg: String |
||||
|
} |
||||
|
}) |
||||
|
export default class HelloWorld extends Vue { |
||||
|
msg!: string |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<!-- Add "scoped" attribute to limit CSS to this component only --> |
||||
|
<style scoped> |
||||
|
h3 { |
||||
|
margin: 40px 0 0; |
||||
|
} |
||||
|
ul { |
||||
|
list-style-type: none; |
||||
|
padding: 0; |
||||
|
} |
||||
|
li { |
||||
|
display: inline-block; |
||||
|
margin: 0 10px; |
||||
|
} |
||||
|
a { |
||||
|
color: #42b983; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,6 @@ |
|||||
|
import { createApp } from 'vue' |
||||
|
import App from './App.vue' |
||||
|
import router from './router' |
||||
|
import store from './store' |
||||
|
|
||||
|
createApp(App).use(store).use(router).mount('#app') |
@ -0,0 +1,25 @@ |
|||||
|
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' |
||||
|
import Home from '../views/Home.vue' |
||||
|
|
||||
|
const routes: Array<RouteRecordRaw> = [ |
||||
|
{ |
||||
|
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: () => import(/* webpackChunkName: "about" */ '../views/About.vue') |
||||
|
} |
||||
|
] |
||||
|
|
||||
|
const router = createRouter({ |
||||
|
history: createWebHistory(process.env.BASE_URL), |
||||
|
routes |
||||
|
}) |
||||
|
|
||||
|
export default router |
@ -0,0 +1,5 @@ |
|||||
|
declare module '*.vue' { |
||||
|
import type { DefineComponent } from 'vue' |
||||
|
const component: DefineComponent<{}, {}, any> |
||||
|
export default component |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
import { createStore } from 'vuex' |
||||
|
|
||||
|
export default createStore({ |
||||
|
state: { |
||||
|
}, |
||||
|
mutations: { |
||||
|
}, |
||||
|
actions: { |
||||
|
}, |
||||
|
modules: { |
||||
|
} |
||||
|
}) |
@ -0,0 +1,5 @@ |
|||||
|
<template> |
||||
|
<div class="about"> |
||||
|
<h1>This is an about page</h1> |
||||
|
</div> |
||||
|
</template> |
@ -0,0 +1,18 @@ |
|||||
|
<template> |
||||
|
<div class="home"> |
||||
|
<img alt="Vue logo" src="../assets/logo.png"> |
||||
|
<HelloWorld msg="Welcome to Your Vue.js + TypeScript App"/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script lang="ts"> |
||||
|
import { Options, Vue } from 'vue-class-component'; |
||||
|
import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src |
||||
|
|
||||
|
@Options({ |
||||
|
components: { |
||||
|
HelloWorld, |
||||
|
}, |
||||
|
}) |
||||
|
export default class Home extends Vue {} |
||||
|
</script> |
@ -0,0 +1,40 @@ |
|||||
|
{ |
||||
|
"compilerOptions": { |
||||
|
"target": "esnext", |
||||
|
"module": "esnext", |
||||
|
"strict": true, |
||||
|
"jsx": "preserve", |
||||
|
"importHelpers": true, |
||||
|
"moduleResolution": "node", |
||||
|
"experimentalDecorators": true, |
||||
|
"skipLibCheck": true, |
||||
|
"esModuleInterop": true, |
||||
|
"allowSyntheticDefaultImports": true, |
||||
|
"sourceMap": true, |
||||
|
"baseUrl": ".", |
||||
|
"types": [ |
||||
|
"webpack-env" |
||||
|
], |
||||
|
"paths": { |
||||
|
"@/*": [ |
||||
|
"src/*" |
||||
|
] |
||||
|
}, |
||||
|
"lib": [ |
||||
|
"esnext", |
||||
|
"dom", |
||||
|
"dom.iterable", |
||||
|
"scripthost" |
||||
|
] |
||||
|
}, |
||||
|
"include": [ |
||||
|
"src/**/*.ts", |
||||
|
"src/**/*.tsx", |
||||
|
"src/**/*.vue", |
||||
|
"tests/**/*.ts", |
||||
|
"tests/**/*.tsx" |
||||
|
], |
||||
|
"exclude": [ |
||||
|
"node_modules" |
||||
|
] |
||||
|
} |
Loading…
Reference in new issue