tweak vite config

This commit is contained in:
pa
2026-03-06 12:45:21 +09:00
parent 3f58a3c9dd
commit e997a7131f
5 changed files with 113 additions and 36 deletions

48
package-lock.json generated
View File

@@ -186,6 +186,7 @@
"integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.0",
"@babel/generator": "^7.29.0",
@@ -709,6 +710,7 @@
}
],
"license": "MIT",
"peer": true,
"engines": {
"node": ">=20.19.0"
},
@@ -749,6 +751,7 @@
}
],
"license": "MIT",
"peer": true,
"engines": {
"node": ">=20.19.0"
}
@@ -1358,7 +1361,6 @@
"dev": true,
"license": "BSD-2-Clause",
"optional": true,
"peer": true,
"dependencies": {
"cross-dirname": "^0.1.0",
"debug": "^4.3.4",
@@ -1380,7 +1382,6 @@
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -1397,7 +1398,6 @@
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"universalify": "^2.0.0"
},
@@ -1412,7 +1412,6 @@
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"engines": {
"node": ">= 10.0.0"
}
@@ -4864,6 +4863,7 @@
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -4897,6 +4897,7 @@
"integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -5453,6 +5454,7 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -6103,8 +6105,7 @@
"integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true
"optional": true
},
"node_modules/cross-env": {
"version": "10.1.0",
@@ -6452,6 +6453,7 @@
"integrity": "sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"app-builder-lib": "26.8.1",
"builder-util": "26.8.1",
@@ -6918,7 +6920,6 @@
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@electron/asar": "^3.2.1",
"debug": "^4.1.1",
@@ -6939,7 +6940,6 @@
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -6971,7 +6971,8 @@
"resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz",
"integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==",
"dev": true,
"license": "MIT"
"license": "MIT",
"peer": true
},
"node_modules/embla-carousel-reactive-utils": {
"version": "8.6.0",
@@ -7004,17 +7005,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/encoding": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
"integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"iconv-lite": "^0.6.2"
}
},
"node_modules/end-of-stream": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
@@ -7204,6 +7194,7 @@
"integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -7264,6 +7255,7 @@
"integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -9728,7 +9720,6 @@
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"minimist": "^1.2.6"
},
@@ -10343,6 +10334,7 @@
"integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/devtools-api": "^7.7.7"
},
@@ -10424,7 +10416,6 @@
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"commander": "^9.4.0"
},
@@ -10442,7 +10433,6 @@
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"engines": {
"node": "^12.20.0 || >=14"
}
@@ -10463,6 +10453,7 @@
"integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -10786,7 +10777,6 @@
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
"license": "ISC",
"peer": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -10801,7 +10791,6 @@
"deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
"license": "ISC",
"peer": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -10823,7 +10812,6 @@
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -11467,6 +11455,7 @@
"integrity": "sha512-/BUbeOwPGruiBOm0YQQ6ZMcLIZ6tf/W+Jcm7dxZyAX0tK3WP9/sq7/NAWBxPIxVahdGjCJoGwej0Gdrv0DxlQQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"events": "^3.3.0",
"graphology-utils": "^2.5.2"
@@ -11956,7 +11945,6 @@
"integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"mkdirp": "^0.5.1",
"rimraf": "~2.6.2"
@@ -12092,6 +12080,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -12482,6 +12471,7 @@
"integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.27.0",
"fdir": "^6.5.0",
@@ -12575,6 +12565,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -12588,6 +12579,7 @@
"integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@vitest/expect": "4.0.18",
"@vitest/mocker": "4.0.18",
@@ -12689,6 +12681,7 @@
"integrity": "sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.29",
"@vue/compiler-sfc": "3.5.29",
@@ -13415,6 +13408,7 @@
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
"dev": true,
"license": "MIT",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}

View File

@@ -1339,6 +1339,7 @@
"android_performance": "Android Performance",
"ios_performance": "iOS Performance",
"time_spent": "Time Spent",
"visibility": "Visibility",
"tags": "Tags",
"memo": "Memo",
"memo_placeholder": "Click to add a memo",

View File

@@ -27,7 +27,7 @@
<PopoverContent class="w-auto p-3" align="start">
<div class="flex flex-col gap-3">
<Field>
<FieldLabel>{{ t('dialog.avatar.tags.public') }}</FieldLabel>
<FieldLabel>{{ t('dialog.avatar.info.visibility') }}</FieldLabel>
<FieldContent>
<ToggleGroup
type="single"
@@ -283,6 +283,10 @@
return count;
});
/**
*
* @param tag
*/
function toggleTagFilter(tag) {
const next = new Set(tagFilters.value);
if (next.has(tag)) next.delete(tag);
@@ -290,6 +294,9 @@
tagFilters.value = next;
}
/**
*
*/
function clearFilters() {
releaseStatusFilter.value = 'all';
tagFilters.value = new Set();
@@ -325,10 +332,18 @@
return list;
});
/**
*
* @param avatarId
*/
function handleShowAvatarDialog(avatarId) {
showAvatarDialog(avatarId);
}
/**
*
* @param avatarId
*/
function handleWearAvatar(avatarId) {
if (currentUser.value.currentAvatar === avatarId) {
return;
@@ -336,6 +351,12 @@
selectAvatarWithoutConfirmation(avatarId);
}
/**
*
* @param command
* @param labelKey
* @param fn
*/
function confirmAndRun(command, labelKey, fn) {
modalStore
.confirm({
@@ -349,6 +370,11 @@
});
}
/**
*
* @param action
* @param avatarRef
*/
function handleContextMenuAction(action, avatarRef) {
switch (action) {
case 'details':
@@ -441,6 +467,12 @@
}
}
/**
*
* @param root0
* @param root0.avatarId
* @param root0.tags
*/
async function onSaveTags({ avatarId, tags: newEntries }) {
const avatar = avatars.value.find((a) => a.id === avatarId);
const oldEntries = avatar?.$tags || [];
@@ -469,6 +501,10 @@
avatarTagsMap.value = new Map(avatarTagsMap.value);
}
/**
*
* @param e
*/
function onFileChangeAvatarImage(e) {
const { file, clearInput } = handleImageUploadInput(e, {
inputSelector: imageUploadInput.value,
@@ -483,6 +519,10 @@
cropDialogOpen.value = true;
}
/**
*
* @param blob
*/
async function onCropConfirmAvatar(blob) {
const avatarRef = changeImageAvatarRef.value;
if (!avatarRef) return;
@@ -527,10 +567,18 @@
currentAvatarId
});
/**
*
* @param row
*/
function handleRowClick(row) {
handleWearAvatar(row.original.id);
}
/**
*
* @param row
*/
function getRowClass(row) {
if (row.original.id === currentAvatarId.value) {
return 'bg-primary/10 hover:bg-primary/15';
@@ -561,6 +609,9 @@
table.setPageSize(size);
});
/**
*
*/
async function refreshAvatars() {
if (isLoading.value) {
return;

View File

@@ -203,11 +203,11 @@ export function getColumns({
}
},
{
id: 'releaseStatus',
id: 'visibility',
accessorKey: 'releaseStatus',
header: () => t('dialog.avatar.tags.public'),
header: () => t('dialog.avatar.info.visibility'),
size: 120,
meta: { label: () => t('dialog.avatar.tags.public') },
meta: { label: () => t('dialog.avatar.info.visibility') },
cell: ({ row }) => {
const ref = row.original;
return (

View File

@@ -3,13 +3,19 @@ import { resolve } from 'node:path';
import fs from 'node:fs';
import { defineConfig, loadEnv } from 'vite';
import { browserslistToTargets } from 'lightningcss';
import browserslist from 'browserslist';
import tailwindcss from '@tailwindcss/vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import { languageCodes } from './localization/locales';
/**
*
* @param assetId
*/
function getAssetLanguage(assetId) {
if (!assetId) return null;
@@ -31,6 +37,10 @@ function getAssetLanguage(assetId) {
return language || null;
}
/**
*
* @param moduleId
*/
function getManualChunk(moduleId) {
const language = getAssetLanguage(moduleId);
if (!language) return;
@@ -40,6 +50,11 @@ function getManualChunk(moduleId) {
const defaultAssetName = '[hash][extname]';
/**
*
* @param root0
* @param root0.name
*/
function getAssetFilename({ name }) {
const language = getAssetLanguage(name);
if (!language) return `assets/${defaultAssetName}`;
@@ -94,12 +109,27 @@ export default defineConfig(({ mode }) => {
css: {
transformer: 'lightningcss',
lightningcss: {
minify: true,
targets: {
chrome: 140
}
drafts: {
nesting: true,
customMedia: true
},
errorRecovery: true,
targets: browserslistToTargets(browserslist('Chrome 144'))
}
},
optimizeDeps: {
include: [
'vue',
'vue/jsx-runtime',
'reka-ui',
'pinia',
'vue-i18n',
'lucide-vue-next',
'@vueuse/core',
'vue-sonner',
'dayjs'
]
},
define: {
LINUX: JSON.stringify(process.env.PLATFORM === 'linux'),
WINDOWS: JSON.stringify(process.env.PLATFORM === 'windows'),
@@ -111,7 +141,8 @@ export default defineConfig(({ mode }) => {
strictPort: true
},
build: {
target: 'chrome140',
target: 'chrome144',
cssTarget: 'chrome144',
outDir: '../build/html',
license: true,
emptyOutDir: true,