The stack:
- vue
- typescript
- vite
- scss + tailwind (jit)
- jest + vtu + snapshot testing + webdriverIO /w selinium
- eslint
- i18n
- router
requirements:
- java
- node
npm install
npm run serve
npm run build
npm run test:unit
npm run test:e2e
npm run lint
The views folder expected to somewhat represent the url structure of the application routes. All routes must have a unique path and name.
In this views folder all routes.ts files will be found at any depth which is expected to have a default export of RouteRecordRaw[]
For example:
import { RouteRecordRaw } from 'vue-router';
import type { Meta } from '@/router';
export default [
{
path: '/',
name: 'index',
component: async() => import(/* webpackChunkName: "index" */ './Index.vue'),
meta: { // optional
needsAuth: false
} as Meta
}
] as RouteRecordRaw[];To add a new locale, all you have to do is create a file in the locales folder which by default exports a LocaleExport. The file must be named the same as the language iso code. It should contain all the messages as the fallbackLocale setting in i18n. Alternatively you may use the i18n custom blocks.
Aliases that resolved by the testing suites, typescript and bundler
@- points to thesrcdirectory e.g.:import $store from '@/store
Store is a simple reactive store pattern.
To create a store module, place a ts module at any depth in the ./stores folder with the default export implementing the Store type found in the store.ts
The store is available everywhere in on vue under the $store property