From 1164ac728db43d088ffbec0d2590b0137089deee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:03:13 +0300 Subject: [PATCH 01/20] Add note about purpose of entry-meteor.js files. --- tools/static-assets/skel-vue/client/entry-meteor.js | 8 ++++++++ tools/static-assets/skel-vue/server/entry-meteor.js | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/tools/static-assets/skel-vue/client/entry-meteor.js b/tools/static-assets/skel-vue/client/entry-meteor.js index e69de29bb2..418b5a55cb 100644 --- a/tools/static-assets/skel-vue/client/entry-meteor.js +++ b/tools/static-assets/skel-vue/client/entry-meteor.js @@ -0,0 +1,8 @@ +// Entrypoint for the Meteor client +// Generally, this file can be left empty. Vite will add imports for +// lazy-loaded Meteor packages to this file to ensure they are included in your +// final production bundle. + +// This can also be a good place to put code that you don't want Vite to +// process, for example, if you run into a compatability issue or need to use +// nested imports. \ No newline at end of file diff --git a/tools/static-assets/skel-vue/server/entry-meteor.js b/tools/static-assets/skel-vue/server/entry-meteor.js index e69de29bb2..48af245a74 100644 --- a/tools/static-assets/skel-vue/server/entry-meteor.js +++ b/tools/static-assets/skel-vue/server/entry-meteor.js @@ -0,0 +1,8 @@ +// Entrypoint for the Meteor server +// Generally, this file can be left empty. Vite will add imports for +// lazy-loaded Meteor packages to this file to ensure they are included in your +// final production bundle. + +// This can also be a good place to put code that you don't want Vite to +// process, for example, if you run into a compatability issue or need to use +// nested imports. \ No newline at end of file From a29af3f4d64abf34e808a4ef90f8d5b775f678ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:05:32 +0300 Subject: [PATCH 02/20] Fix unused 'client/main.js' file, using a more consistent main module directory structure --- tools/static-assets/skel-vue/client/main.js | 2 +- tools/static-assets/skel-vue/vite.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/static-assets/skel-vue/client/main.js b/tools/static-assets/skel-vue/client/main.js index 97d382a9bd..44bcc64d55 100644 --- a/tools/static-assets/skel-vue/client/main.js +++ b/tools/static-assets/skel-vue/client/main.js @@ -1 +1 @@ -// main entry point is in imports/ui/main.jsx +import '../imports/ui/main'; \ No newline at end of file diff --git a/tools/static-assets/skel-vue/vite.config.js b/tools/static-assets/skel-vue/vite.config.js index dd08ccf69d..5c0ecc62ba 100644 --- a/tools/static-assets/skel-vue/vite.config.js +++ b/tools/static-assets/skel-vue/vite.config.js @@ -6,7 +6,7 @@ export default defineConfig({ plugins: [ vue(), meteor({ - clientEntry: 'imports/ui/main.js', + clientEntry: 'client/main.js', serverEntry: 'server/main.js', enableExperimentalFeatures: true, stubValidation: { From 24dbc8a911ea29c197075ed457c8695e59579d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:12:45 +0300 Subject: [PATCH 03/20] Upgrade Tailwind to v4 in Vue skeleton --- tools/static-assets/skel-vue/client/main.css | 4 +--- tools/static-assets/skel-vue/package.json | 5 ++--- tools/static-assets/skel-vue/vite.config.js | 4 +++- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/tools/static-assets/skel-vue/client/main.css b/tools/static-assets/skel-vue/client/main.css index b5c61c9567..a461c505f1 100644 --- a/tools/static-assets/skel-vue/client/main.css +++ b/tools/static-assets/skel-vue/client/main.css @@ -1,3 +1 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; \ No newline at end of file diff --git a/tools/static-assets/skel-vue/package.json b/tools/static-assets/skel-vue/package.json index 560c8a23a5..1f573e0e5b 100644 --- a/tools/static-assets/skel-vue/package.json +++ b/tools/static-assets/skel-vue/package.json @@ -24,11 +24,10 @@ }, "devDependencies": { "@types/meteor": "^2.9.7", + "@tailwindcss/vite": "^4.1.11", "@vitejs/plugin-vue": "^5.2.1", - "autoprefixer": "^10.4.16", "meteor-vite": "^3.2.1", - "postcss": "^8.4.31", - "tailwindcss": "^3.3.5", + "tailwindcss": "^4.1.11", "vite": "^6.0.11" } } diff --git a/tools/static-assets/skel-vue/vite.config.js b/tools/static-assets/skel-vue/vite.config.js index 5c0ecc62ba..01a2ae4903 100644 --- a/tools/static-assets/skel-vue/vite.config.js +++ b/tools/static-assets/skel-vue/vite.config.js @@ -1,10 +1,12 @@ -import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; +import tailwindcss from 'tailwindcss'; +import { defineConfig } from 'vite'; import { meteor } from 'meteor-vite/plugin'; export default defineConfig({ plugins: [ vue(), + tailwindcss(), meteor({ clientEntry: 'client/main.js', serverEntry: 'server/main.js', From 00bc129092baccd28518abf408acf14c1d11dc88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:13:37 +0300 Subject: [PATCH 04/20] Add explicit import for main CSS file in client main module --- tools/static-assets/skel-vue/client/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/static-assets/skel-vue/client/main.js b/tools/static-assets/skel-vue/client/main.js index 44bcc64d55..52c40b5d43 100644 --- a/tools/static-assets/skel-vue/client/main.js +++ b/tools/static-assets/skel-vue/client/main.js @@ -1 +1,2 @@ +import './main.css'; import '../imports/ui/main'; \ No newline at end of file From 735aed6c3a1780eab8ef4e0a1b1dbbbf9d4ad578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:14:14 +0300 Subject: [PATCH 05/20] Remove redundant config files from Vue skeleton --- tools/static-assets/skel-vue/postcss.config.js | 6 ------ tools/static-assets/skel-vue/tailwind.config.js | 8 -------- 2 files changed, 14 deletions(-) delete mode 100644 tools/static-assets/skel-vue/postcss.config.js delete mode 100644 tools/static-assets/skel-vue/tailwind.config.js diff --git a/tools/static-assets/skel-vue/postcss.config.js b/tools/static-assets/skel-vue/postcss.config.js deleted file mode 100644 index 33ad091d26..0000000000 --- a/tools/static-assets/skel-vue/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/tools/static-assets/skel-vue/tailwind.config.js b/tools/static-assets/skel-vue/tailwind.config.js deleted file mode 100644 index 72c950fc84..0000000000 --- a/tools/static-assets/skel-vue/tailwind.config.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ['./imports/ui/**/*.{vue,js,ts,jsx,tsx}', './client/*.html'], - theme: { - extend: {}, - }, - plugins: [], -} From 17e8152f24d8872d5e1d19e150885b943811f3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:15:53 +0300 Subject: [PATCH 06/20] Use .mjs file extension for Vite config to avoid CJS interop exceptions --- tools/static-assets/skel-vue/{vite.config.js => vite.config.mjs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tools/static-assets/skel-vue/{vite.config.js => vite.config.mjs} (100%) diff --git a/tools/static-assets/skel-vue/vite.config.js b/tools/static-assets/skel-vue/vite.config.mjs similarity index 100% rename from tools/static-assets/skel-vue/vite.config.js rename to tools/static-assets/skel-vue/vite.config.mjs From a972460c09cf90a4ee461911be96353245f5b4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:19:46 +0300 Subject: [PATCH 07/20] Use .mjs file extension for Vite config to avoid CJS interop exceptions --- tools/static-assets/skel-vue/vite.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/vite.config.mjs b/tools/static-assets/skel-vue/vite.config.mjs index 01a2ae4903..f955234c6a 100644 --- a/tools/static-assets/skel-vue/vite.config.mjs +++ b/tools/static-assets/skel-vue/vite.config.mjs @@ -1,5 +1,5 @@ import vue from '@vitejs/plugin-vue'; -import tailwindcss from 'tailwindcss'; +import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; import { meteor } from 'meteor-vite/plugin'; From e8795c96f8c5d507e6283377483b410c2371a306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:31:19 +0300 Subject: [PATCH 08/20] Move main.css file into UI directory to prevent Meteor from trying to process it in addition to Vite. --- tools/static-assets/skel-vue/client/main.js | 3 +-- tools/static-assets/skel-vue/{client => imports/ui}/main.css | 0 tools/static-assets/skel-vue/imports/ui/main.js | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) rename tools/static-assets/skel-vue/{client => imports/ui}/main.css (100%) diff --git a/tools/static-assets/skel-vue/client/main.js b/tools/static-assets/skel-vue/client/main.js index 52c40b5d43..403d8a2d2a 100644 --- a/tools/static-assets/skel-vue/client/main.js +++ b/tools/static-assets/skel-vue/client/main.js @@ -1,2 +1 @@ -import './main.css'; -import '../imports/ui/main'; \ No newline at end of file +import '../imports/ui/main' \ No newline at end of file diff --git a/tools/static-assets/skel-vue/client/main.css b/tools/static-assets/skel-vue/imports/ui/main.css similarity index 100% rename from tools/static-assets/skel-vue/client/main.css rename to tools/static-assets/skel-vue/imports/ui/main.css diff --git a/tools/static-assets/skel-vue/imports/ui/main.js b/tools/static-assets/skel-vue/imports/ui/main.js index e3500841ea..f568d94ebf 100644 --- a/tools/static-assets/skel-vue/imports/ui/main.js +++ b/tools/static-assets/skel-vue/imports/ui/main.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor' import { createApp } from 'vue' import { VueMeteor } from 'vue-meteor-tracker' +import './main.css' import App from './App.vue' import { router } from './router' From 54e5d26d72acbd51156b976452f33dcea1a8b167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Vatle?= Date: Sun, 6 Jul 2025 19:43:20 +0300 Subject: [PATCH 09/20] Add a clear distinction between components, pages and the app container through a generally accepted Vue directory structure convention. --- tools/static-assets/skel-vue/imports/ui/App.vue | 2 +- .../skel-vue/imports/ui/{ => components}/AppMenu.vue | 0 .../skel-vue/imports/ui/{ => components}/Hello.vue | 0 .../skel-vue/imports/ui/{ => components}/Info.vue | 0 tools/static-assets/skel-vue/imports/ui/router.js | 4 ++-- tools/static-assets/skel-vue/imports/ui/{ => views}/About.vue | 0 tools/static-assets/skel-vue/imports/ui/{ => views}/Home.vue | 4 ++-- 7 files changed, 5 insertions(+), 5 deletions(-) rename tools/static-assets/skel-vue/imports/ui/{ => components}/AppMenu.vue (100%) rename tools/static-assets/skel-vue/imports/ui/{ => components}/Hello.vue (100%) rename tools/static-assets/skel-vue/imports/ui/{ => components}/Info.vue (100%) rename tools/static-assets/skel-vue/imports/ui/{ => views}/About.vue (100%) rename tools/static-assets/skel-vue/imports/ui/{ => views}/Home.vue (60%) diff --git a/tools/static-assets/skel-vue/imports/ui/App.vue b/tools/static-assets/skel-vue/imports/ui/App.vue index 7a775391cb..19a68a1ea1 100644 --- a/tools/static-assets/skel-vue/imports/ui/App.vue +++ b/tools/static-assets/skel-vue/imports/ui/App.vue @@ -1,5 +1,5 @@