====== VueJs ====== ===== Memo ===== ==== Propriétés ==== === Validation === validator: (value: [boolean, object]) => value instanceof Vue || typeof value === 'object' ===== vue-cli ===== ==== Configuration ==== La configuration de vue-cli se fait dans le fichier vue.config.js à la racine du projet. ===== Spécifier la destination des builds ===== const path = require("path"); module.exports = { outputDir: path.resolve(__dirname, "../web/XXX"), assetsDir: "../web/assets" } ===== Eviter l'erreur "Invalid host header" ===== module.exports = { devServer: { disableHostCheck: true } } ===== Webpack - Corriger le problème de connexion WS lors de l'utilisation d'un container ===== docker-compose.yml environment: - CODESANDBOX_SSE=true ===== Vite - Configurer le port WS du client ===== vite.config.js import { defineConfig } from 'vite' export default defineConfig({ server: { hmr: { clientPort: 40000 } } } ===== Vite - Permettre les imports de modules ===== vite.config.js import { defineConfig } from 'vite' import tsconfigPaths from 'vite-tsconfig-paths' export default defineConfig({ plugins: [tsconfigPaths()] } ==== Correction de bugs ==== ==== vue-cli Super expression must either be null or a function ==== Lors de l'initialisation d'un nouveau projet avec vue-cli, l'exécution des tests "unit" peut échouer avec le message d'erreur suivant : vue-cli Super expression must either be null or a function Voici la solution pour contourner le problème en attendant un correctif : Fichier package.json : "scripts": { "test": "vue-cli-service test:unit --require tests/unit/setup.js" } Fichier tests/unit/setup.js : require('jsdom-global')(); window.Date = Date; ===== Structure de base ===== Title

Title ¯\_(ツ)_/¯

{{ message }}
===== A CLASSER ===== const path = require("path"); module.exports = { devServer: { disableHostCheck: true }, outputDir: path.resolve(__dirname, "../web"), publicPath: '/simulation/gcid/', chainWebpack: config => { config .plugin('html') .tap(args => { args[0].minify = {} return args }) } } props: { active: [Boolean, false, 'sync'], clickAway: [Boolean, true], escEscape: [Boolean, true], leaveDealy: [Number, 300], modalClass: [Object, ''], transition: [Boolean, true] }