@@ -0,0 +1,4 @@ | |||||
> 1% | |||||
last 2 versions | |||||
not dead | |||||
not ie 11 |
@@ -0,0 +1,5 @@ | |||||
[*.{js,jsx,ts,tsx,vue}] | |||||
indent_style = space | |||||
indent_size = 2 | |||||
trim_trailing_whitespace = true | |||||
insert_final_newline = true |
@@ -0,0 +1,18 @@ | |||||
module.exports = { | |||||
root: true, | |||||
env: { | |||||
node: true | |||||
}, | |||||
extends: [ | |||||
'plugin:vue/vue3-essential', | |||||
'@vue/standard', | |||||
'@vue/typescript/recommended' | |||||
], | |||||
parserOptions: { | |||||
ecmaVersion: 2020 | |||||
}, | |||||
rules: { | |||||
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | |||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' | |||||
} | |||||
} |
@@ -0,0 +1,23 @@ | |||||
.DS_Store | |||||
node_modules | |||||
/dist | |||||
# local env files | |||||
.env.local | |||||
.env.*.local | |||||
# Log files | |||||
npm-debug.log* | |||||
yarn-debug.log* | |||||
yarn-error.log* | |||||
pnpm-debug.log* | |||||
# Editor directories and files | |||||
.idea | |||||
.vscode | |||||
*.suo | |||||
*.ntvs* | |||||
*.njsproj | |||||
*.sln | |||||
*.sw? |
@@ -0,0 +1,24 @@ | |||||
# wldp | |||||
## Project setup | |||||
``` | |||||
npm install | |||||
``` | |||||
### Compiles and hot-reloads for development | |||||
``` | |||||
npm run serve | |||||
``` | |||||
### Compiles and minifies for production | |||||
``` | |||||
npm run build | |||||
``` | |||||
### Lints and fixes files | |||||
``` | |||||
npm run lint | |||||
``` | |||||
### Customize configuration | |||||
See [Configuration Reference](https://cli.vuejs.org/config/). |
@@ -0,0 +1,5 @@ | |||||
module.exports = { | |||||
presets: [ | |||||
'@vue/cli-plugin-babel/preset' | |||||
] | |||||
} |
@@ -0,0 +1,37 @@ | |||||
{ | |||||
"name": "wldp", | |||||
"version": "0.1.0", | |||||
"private": true, | |||||
"scripts": { | |||||
"serve": "vue-cli-service serve", | |||||
"build": "vue-cli-service build", | |||||
"lint": "vue-cli-service lint" | |||||
}, | |||||
"dependencies": { | |||||
"core-js": "^3.8.3", | |||||
"vue": "^3.2.13", | |||||
"vue-class-component": "^8.0.0-0", | |||||
"vue-router": "^4.0.3", | |||||
"vuex": "^4.0.0" | |||||
}, | |||||
"devDependencies": { | |||||
"@typescript-eslint/eslint-plugin": "^5.4.0", | |||||
"@typescript-eslint/parser": "^5.4.0", | |||||
"@vue/cli-plugin-babel": "~5.0.0", | |||||
"@vue/cli-plugin-eslint": "~5.0.0", | |||||
"@vue/cli-plugin-router": "~5.0.0", | |||||
"@vue/cli-plugin-typescript": "~5.0.0", | |||||
"@vue/cli-plugin-vuex": "~5.0.0", | |||||
"@vue/cli-service": "~5.0.0", | |||||
"@vue/eslint-config-standard": "^6.1.0", | |||||
"@vue/eslint-config-typescript": "^9.1.0", | |||||
"eslint": "^7.32.0", | |||||
"eslint-plugin-import": "^2.25.3", | |||||
"eslint-plugin-node": "^11.1.0", | |||||
"eslint-plugin-promise": "^5.1.0", | |||||
"eslint-plugin-vue": "^8.0.3", | |||||
"less": "^4.0.0", | |||||
"less-loader": "^8.0.0", | |||||
"typescript": "~4.5.5" | |||||
} | |||||
} |
@@ -0,0 +1,17 @@ | |||||
<!DOCTYPE html> | |||||
<html lang=""> | |||||
<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> | |||||
<nav> | |||||
<router-link to="/">Home</router-link> | | |||||
<router-link to="/about">About</router-link> | |||||
</nav> | |||||
<router-view/> | |||||
</template> | |||||
<style lang="less"> | |||||
#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; | |||||
a { | |||||
font-weight: bold; | |||||
color: #2c3e50; | |||||
&.router-link-exact-active { | |||||
color: #42b983; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -0,0 +1,65 @@ | |||||
<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-eslint" target="_blank" rel="noopener">eslint</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 lang="less"> | |||||
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 HomeView from '../views/HomeView.vue' | |||||
const routes: Array<RouteRecordRaw> = [ | |||||
{ | |||||
path: '/', | |||||
name: 'home', | |||||
component: HomeView | |||||
}, | |||||
{ | |||||
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/AboutView.vue') | |||||
} | |||||
] | |||||
const router = createRouter({ | |||||
history: createWebHistory(process.env.BASE_URL), | |||||
routes | |||||
}) | |||||
export default router |
@@ -0,0 +1,6 @@ | |||||
/* eslint-disable */ | |||||
declare module '*.vue' { | |||||
import type { DefineComponent } from 'vue' | |||||
const component: DefineComponent<{}, {}, any> | |||||
export default component | |||||
} |
@@ -0,0 +1,14 @@ | |||||
import { createStore } from 'vuex' | |||||
export default createStore({ | |||||
state: { | |||||
}, | |||||
getters: { | |||||
}, | |||||
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 HomeView extends Vue {} | |||||
</script> |
@@ -0,0 +1,41 @@ | |||||
{ | |||||
"compilerOptions": { | |||||
"target": "esnext", | |||||
"module": "esnext", | |||||
"strict": true, | |||||
"jsx": "preserve", | |||||
"moduleResolution": "node", | |||||
"experimentalDecorators": true, | |||||
"skipLibCheck": true, | |||||
"esModuleInterop": true, | |||||
"allowSyntheticDefaultImports": true, | |||||
"forceConsistentCasingInFileNames": true, | |||||
"useDefineForClassFields": 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" | |||||
] | |||||
} |
@@ -0,0 +1,4 @@ | |||||
const { defineConfig } = require('@vue/cli-service') | |||||
module.exports = defineConfig({ | |||||
transpileDependencies: true | |||||
}) |