Skip to content
Snippets Groups Projects
Unverified Commit fb3caa9b authored by simon.mellerin's avatar simon.mellerin Committed by GitHub
Browse files

#1 - Initialize vite app

* Initialize vite app

* clean up

* fix storybook config
parent 20d2d629
Branches
No related tags found
No related merge requests found
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
root: true,
'extends': ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/eslint-config-typescript', '@vue/eslint-config-prettier/skip-formatting', 'plugin:storybook/recommended'],
parserOptions: {
ecmaVersion: 'latest'
},
overrides: [
{
files: ['pages/**/*.vue'],
extends: ['vue/multi-word-component-names'],
}
],
}
# See https://www.dartlang.org/guides/libraries/private-files
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock
node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/
/cypress/videos/
/cypress/screenshots/
# dotenv environment variables file
.env*
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Avoid committing generated Javascript files:
*.dart.js
*.info.json # Produced by the --dump-info flag.
*.js # When generated by dart2js. Don't specify *.js if your
# project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map
*.tsbuildinfo
.flutter-plugins
.flutter-plugins-dependencies
*storybook.log
\ No newline at end of file
.nvmrc 0 → 100644
v20
\ No newline at end of file
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
}
\ No newline at end of file
import type { StorybookConfig } from '@storybook/vue3-vite'
const config: StorybookConfig = {
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
addons: [
'@storybook/addon-onboarding',
'@storybook/addon-links',
'@storybook/addon-essentials',
'@chromatic-com/storybook',
'@storybook/addon-interactions'
],
framework: {
name: '@storybook/vue3-vite',
options: {}
}
}
export default config
import type { Preview } from '@storybook/vue3'
import { setup } from '@storybook/vue3';
import { createI18n } from 'vue-i18n';
import messageEn from '../src/locale/en'
import messageFr from '../src/locale/fr'
const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i
}
}
}
}
setup((app) => {
const i18n = createI18n({
locale: 'en',
messages: {
en: messageEn,
fr: messageFr,
}
})
app.use(i18n);
});
export default preview
{
"recommendations": [
"Vue.volar",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}
# vue-project
This template should help get you started developing with Vue 3 in Vite.
## Recommended IDE Setup
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
## Type Support for `.vue` Imports in TS
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
## Customize configuration
See [Vite Configuration Reference](https://vitejs.dev/config/).
## Project Setup
```sh
npm install
```
### Compile and Hot-Reload for Development
```sh
npm run dev
```
### Type-Check, Compile and Minify for Production
```sh
npm run build
```
### Run Unit Tests with [Vitest](https://vitest.dev/)
```sh
npm run test:unit
```
### Lint with [ESLint](https://eslint.org/)
```sh
npm run lint
```
/// <reference types="vite/client" />
/// <reference types="unplugin-vue-router/client" />
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
Source diff could not be displayed: it is too large. Options to address this: view the blob.
{
"name": "vue-project",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview",
"test:unit": "vitest",
"build-only": "vite build",
"type-check": "vue-tsc --build --force",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"format": "prettier --write src/",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.6.0",
"@primevue/themes": "^4.0.5",
"pinia": "^2.1.7",
"primevue": "^4.0.5",
"tailwindcss-primeui": "^0.3.4",
"vue": "^3.4.29",
"vue-i18n": "^9.14.0",
"vue-router": "^4.3.3"
},
"devDependencies": {
"@chromatic-com/storybook": "^1.9.0",
"@rushstack/eslint-patch": "^1.8.0",
"@storybook/addon-essentials": "^8.2.9",
"@storybook/addon-interactions": "^8.2.9",
"@storybook/addon-links": "^8.2.9",
"@storybook/addon-onboarding": "^8.2.9",
"@storybook/blocks": "^8.2.9",
"@storybook/test": "^8.2.9",
"@storybook/vue3": "^8.2.9",
"@storybook/vue3-vite": "^8.2.9",
"@tsconfig/node20": "^20.1.4",
"@types/jsdom": "^21.1.7",
"@types/node": "^20.14.5",
"@vitejs/plugin-vue": "^5.0.5",
"@vue/eslint-config-prettier": "^9.0.0",
"@vue/eslint-config-typescript": "^13.0.0",
"@vue/test-utils": "^2.4.6",
"@vue/tsconfig": "^0.5.1",
"autoprefixer": "^10.4.20",
"eslint": "^8.57.0",
"eslint-plugin-storybook": "^0.8.0",
"eslint-plugin-vue": "^9.23.0",
"jsdom": "^24.1.0",
"npm-run-all2": "^6.2.0",
"postcss": "^8.4.45",
"prettier": "^3.2.5",
"storybook": "^8.2.9",
"tailwindcss": "^3.4.10",
"typescript": "~5.4.0",
"unplugin-vue-router": "^0.10.7",
"vite": "^5.3.1",
"vite-plugin-vue-devtools": "^7.3.1",
"vitest": "^1.6.0",
"vue-tsc": "^2.0.21"
}
}
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
public/favicon.ico

4.19 KiB

<script setup lang="ts">
import Select from 'primevue/select';
import { RouterView } from 'vue-router'
</script>
<template>
<header>
<p>Open common</p>
<div class="locale-changer">
<Select v-model="$i18n.locale" :options="$i18n.availableLocales" />
</div>
</header>
<RouterView />
</template>
@import "@fortawesome/fontawesome-free/css/all.css";
@layer tailwind-base, primevue, tailwind-utilities;
@layer tailwind-base {
@tailwind base;
}
@layer tailwind-utilities {
@tailwind components;
@tailwind utilities;
}
export default {
home: {
catchphrase: 'Research Data Portal: Submit, Search and Share'
}
}
\ No newline at end of file
export default {
home: {
catchphrase: 'Portail pour les données de la recherche : Déposer, Rechercher et Partager'
}
}
\ No newline at end of file
import './assets/main.css'
import { createApp } from 'vue'
import { createI18n } from 'vue-i18n'
import { createPinia } from 'pinia'
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from 'vue-router/auto-routes'
import PrimeVue from 'primevue/config';
import Aura from '@primevue/themes/aura';
import messageEn from './locale/en'
import messageFr from './locale/fr'
import App from './App.vue'
const app = createApp(App)
const router = createRouter({
history: createWebHistory(),
routes,
})
const i18n = createI18n({
locale: 'en',
messages: {
en: messageEn,
fr: messageFr,
}
})
app.use(createPinia())
app.use(router)
app.use(i18n)
app.use(PrimeVue, {
theme: {
preset: Aura,
options: {
darkModeSelector: 'light',
cssLayer: {
name: 'primevue',
order: 'tailwind-base, primevue, tailwind-utilities'
}
}
}
});
app.mount('#app')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment