migrate to Tailwind JIT + views + router/ build fix

ref #23
This commit is contained in:
Philipp Dormann 2021-03-30 18:05:55 +02:00
parent 5253fb1832
commit 15b60f60b5
13 changed files with 99 additions and 92 deletions

View File

@ -1,42 +1,45 @@
{
"name": "@odit/lfk-selfservice",
"version": "0.1.2",
"scripts": {
"dev": "vite",
"build": "vite build",
"release": "release-it --only-version"
},
"dependencies": {
"marked": "^2.0.1",
"redaxios": "^0.4.1",
"toastify-js": "^1.10.0",
"validator": "^13.5.2",
"vue": "^3.0.5",
"vue-i18n": "^9.0.0",
"vue-router": "4",
"vue-toastification": "^2.0.0-rc.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^1.1.5",
"@vue/compiler-sfc": "^3.0.7",
"autoprefixer": "^10.2.5",
"postcss": "^8.2.8",
"release-it": "^14.5.0",
"tailwindcss": "^2.0.4",
"vite": "^2.1.3",
"vite-plugin-windicss": "^0.10.2"
},
"release-it": {
"git": {
"commit": true,
"requireCleanWorkingDir": false,
"commitMessage": "🚀Bumped version to v${version}",
"requireBranch": "dev",
"push": false,
"tag": false
},
"npm": {
"publish": false
}
}
"name": "@odit/lfk-selfservice",
"version": "0.1.2",
"scripts": {
"dev": "vite",
"build": "vite build",
"release": "release-it --only-version"
},
"dependencies": {
"marked": "2.0.1",
"redaxios": "0.4.1",
"toastify-js": "1.10.0",
"validator": "13.5.2",
"vue-i18n": "9.0.0",
"vue-toastification": "2.0.0-rc.1",
"vue": "3.0.9",
"vue-router": "4.0.5"
},
"devDependencies": {
"@tailwindcss/jit": "0.1.17",
"@tailwindcss/aspect-ratio": "0.2.0",
"@tailwindcss/forms": "0.3.2",
"@tailwindcss/line-clamp": "0.2.0",
"@tailwindcss/typography": "0.4.0",
"@vitejs/plugin-vue": "1.2.0",
"@vue/compiler-sfc": "3.0.9",
"autoprefixer": "10.2.5",
"tailwindcss": "2.0.4",
"release-it": "14.5.0",
"vite": "2.1.3"
},
"release-it": {
"git": {
"commit": true,
"requireCleanWorkingDir": false,
"commitMessage": "🚀Bumped version to v${version}",
"requireBranch": "dev",
"push": false,
"tag": false
},
"npm": {
"publish": false
}
}
}

View File

@ -1,8 +1,9 @@
<template>
<router-view></router-view>
<main>
<router-view></router-view>
</main>
</template>
<script setup>
console.log(config.baseurl_selfservice);
config.baseurl_selfservice = (config.baseurl_selfservice || "/selfservice");
</script>

View File

@ -1,10 +1,21 @@
import { createApp } from 'vue';
import App from './App.vue';
import Toast from 'vue-toastification';
import 'windi.css';
import './tailwind.css';
import 'toastify-js/src/toastify.css';
import 'vue-toastification/dist/index.css';
import { router } from './router';
import App from './App.vue';
import { routes } from './routes.js';
import { createRouter, createWebHistory } from 'vue-router';
import { i18n } from './language';
import Toast from 'vue-toastification';
createApp(App).use(Toast).use(i18n).use(router).mount('#app');
const app = createApp(App);
const router = createRouter({
history: createWebHistory(),
routes
});
app.use(router);
app.use(i18n);
app.use(Toast);
app.mount('#app');

View File

@ -1,26 +0,0 @@
import { createWebHistory, createRouter } from 'vue-router';
// ------------
const EnvError = import('./components/EnvError.vue');
const Home = import('./components/Home.vue');
const Imprint = import('./components/Imprint.vue');
const Privacy = import('./components/Privacy.vue');
const Register = () => import('./components/Register.vue');
const Profile = () => import('./components/Profile.vue');
//
let routes = [ { path: '/:pathMatch(.*)*', component: EnvError } ];
if (typeof config !== 'undefined') {
if (config.baseurl && config.documentserver_key) {
routes = [
{ path: '/', component: Home },
{ path: '/imprint', component: Imprint },
{ path: '/privacy', component: Privacy },
{ path: '/register', component: Register },
{ path: '/register/:token', component: Register, props: true },
{ path: '/profile/:token', component: Profile, props: true }
];
}
}
export const router = createRouter({
history: createWebHistory(),
routes
});

16
src/routes.js Normal file
View File

@ -0,0 +1,16 @@
import EnvError from './components/EnvError.vue';
import Home from './views/Home.vue';
import Imprint from './views/Imprint.vue';
import Privacy from './views/Privacy.vue';
import Register from './views/Register.vue';
import Profile from './views/Profile.vue';
/** @type {import('vue-router').RouterOptions['routes']} */
export const routes = [
{ path: '/', component: Home },
{ path: '/imprint', component: Imprint },
{ path: '/privacy', component: Privacy },
{ path: '/register', component: Register },
{ path: '/register/:token', component: Register, props: true },
{ path: '/profile/:token', component: Profile, props: true }
];

3
src/tailwind.css Normal file
View File

@ -0,0 +1,3 @@
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

View File

@ -25,6 +25,5 @@
</template>
<script setup>
import LoginForm from "./LoginForm.vue";
import Footer from "./Footer.vue";
import Footer from "@/components/Footer.vue";
</script>

View File

@ -10,7 +10,7 @@
</div>
</section>
</template>
<style src="./simple.css">
<style src="../simple.css">
</style>
<script>
import marked from "marked";

View File

@ -10,7 +10,7 @@
</div>
</section>
</template>
<style src="./simple.css">
<style src="../simple.css">
</style>
<script>
import marked from "marked";

View File

@ -165,13 +165,10 @@
</template>
<script setup>
import { ref, reactive } from "vue";
import { reactive } from "vue";
import { useToast } from "vue-toastification";
import axios from "redaxios";
// import isEmail from 'validator/es/lib/isEmail';
// import isMobilePhone from 'validator/es/lib/isMobilePhone';
// import isPostalCode from 'validator/es/lib/isPostalCode';
//
const state = reactive({
phone: "",
email: "",
@ -187,7 +184,7 @@ const props = defineProps({
token: String
})
const accesstoken = atob(props.token);
axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
axios.get(`${config.baseurl_selfservice}/api/runners/me/${accesstoken}`)
.then(({ data }) => {
state.phone = data.phone;
state.email = data.email;

View File

@ -261,7 +261,7 @@ import isEmail from 'validator/es/lib/isEmail';
import isMobilePhone from 'validator/es/lib/isMobilePhone';
import isPostalCode from 'validator/es/lib/isPostalCode';
import { useToast } from "vue-toastification";
import { router } from '../router';
// import { router } from '../router';
import { i18n } from '../language';
const props = defineProps({
@ -328,7 +328,7 @@ function login() {
axios.post(url, postdata)
.then(({ data }) => {
const token = btoa(data.token);
router.push(`${config.baseurl_selfservice}/profile/${token}`);
// router.push(`${config.baseurl_selfservice}/profile/${token}`);
})
.catch((error) => {
console.log(error);

View File

@ -1,9 +1,12 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import WindiCSS from 'vite-plugin-windicss';
import path from 'path';
/**
* @type {import('vite').UserConfig}
*/
export default {
plugins: [ vue(), WindiCSS() ]
};
export default defineConfig({
plugins: [ vue() ],
resolve: {
alias: {
'@': path.resolve(__dirname, '/src')
}
}
});