fix: on demand sub path for date-fns & not default load fuse

This commit is contained in:
YunYouJun 2024-11-27 10:27:14 +08:00
parent f18df8167b
commit 491ce4e83d
23 changed files with 1826 additions and 1285 deletions

View File

@ -16,6 +16,6 @@
"valaxy-theme-custom": "workspace:*"
},
"devDependencies": {
"typescript": "^5.6.3"
"typescript": "^5.7.2"
}
}

View File

@ -2,7 +2,7 @@
"name": "valaxy-theme-custom",
"version": "0.0.0",
"private": true,
"packageManager": "pnpm@9.13.2",
"packageManager": "pnpm@9.14.2",
"author": {
"email": "me@yunyoujun.cn",
"name": "YunYouJun",
@ -23,6 +23,6 @@
"types": "types/index.d.ts",
"dependencies": {
"@iconify-json/ant-design": "^1.2.2",
"@iconify-json/simple-icons": "^1.2.11"
"@iconify-json/simple-icons": "^1.2.13"
}
}

View File

@ -22,9 +22,9 @@
},
"devDependencies": {
"@iconify-json/carbon": "^1.2.4",
"@iconify-json/simple-icons": "^1.2.11",
"@iconify-json/simple-icons": "^1.2.13",
"nodemon": "^3.1.7",
"vite": "^5.4.11",
"vite": "^6.0.0",
"vitepress": "1.1.4"
}
}

View File

@ -3,7 +3,7 @@
"type": "module",
"version": "0.20.4",
"private": true,
"packageManager": "pnpm@9.13.2",
"packageManager": "pnpm@9.14.2",
"description": "📄 Vite & Vue powered static blog generator.",
"author": {
"email": "me@yunyoujun.cn",
@ -82,13 +82,13 @@
"@antfu/eslint-config": "2.17.0",
"@iconify-json/logos": "^1.2.3",
"@iconify-json/vscode-icons": "^1.2.2",
"@microsoft/api-extractor": "^7.47.11",
"@playwright/test": "^1.48.2",
"@microsoft/api-extractor": "^7.48.0",
"@playwright/test": "^1.49.0",
"@types/debug": "^4.1.12",
"@types/markdown-it-attrs": "^4.1.3",
"@types/markdown-it-container": "^2.0.10",
"@types/markdown-it-emoji": "^3.0.1",
"@types/node": "^22.9.0",
"@types/node": "^22.10.0",
"@types/prompts": "^2.4.9",
"@types/resolve": "^1.20.6",
"bumpp": "^9.8.1",
@ -96,7 +96,7 @@
"decap-cms-app": "^3.4.0",
"eslint": "^9.15.0",
"https-localhost": "^4.7.1",
"husky": "^9.1.6",
"husky": "^9.1.7",
"lint-staged": "^15.2.10",
"npm-run-all": "^4.1.5",
"prompts": "^2.4.2",
@ -106,9 +106,9 @@
"stylelint-config-standard-scss": "^13.1.0",
"tsup": "^8.3.5",
"tsx": "^4.19.2",
"typescript": "^5.6.3",
"typescript": "^5.7.2",
"unbuild": "^2.0.0",
"vitest": "^2.1.5",
"vitest": "^2.1.6",
"vue-tsc": "2.0.17",
"zx": "^8.2.2"
},

View File

@ -16,6 +16,6 @@
"valaxy-theme-yun": "0.20.4"
},
"devDependencies": {
"typescript": "^5.6.3"
"typescript": "^5.7.2"
}
}

View File

@ -29,8 +29,8 @@
},
"dependencies": {
"@rollup/pluginutils": "^5.1.3",
"axios": "^1.7.7",
"body-parser": "^1.20.3",
"axios": "^1.7.8",
"body-parser": "^2.0.1",
"http-proxy-middleware": "^3.0.3",
"js-yaml": "^4.1.0",
"picocolors": "^1.1.1",
@ -43,9 +43,9 @@
"@types/splitpanes": "^2.2.6",
"gray-matter": "^4.0.3",
"splitpanes": "^3.1.5",
"typescript": "^5.6.3",
"typescript": "^5.7.2",
"unbuild": "^2.0.0",
"unplugin-vue-router": "^0.10.8",
"vite": "^5.4.11"
"vite": "^6.0.0"
}
}

View File

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { onMounted, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { differenceInSeconds } from 'date-fns'
import { differenceInSeconds } from 'date-fns/differenceInSeconds'
const props = defineProps<{
startTime: string

View File

@ -17,6 +17,6 @@
"valaxy": "latest"
},
"dependencies": {
"lightgallery": "^2.7.2"
"lightgallery": "2.7.2"
}
}

View File

@ -19,6 +19,6 @@
"valaxy": "latest"
},
"dependencies": {
"@waline/client": "^3.3.2"
"@waline/client": "^3.4.0"
}
}

View File

@ -1,11 +1,11 @@
<script lang="ts" setup>
import { ref } from 'vue'
import { ref, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import { useFuseSearch } from 'valaxy'
import { isClient, onClickOutside, useScrollLock } from '@vueuse/core'
defineProps<{
const props = defineProps<{
open: boolean
}>()
const emit = defineEmits(['close'])
@ -14,7 +14,7 @@ const input = ref('')
const isLocked = useScrollLock(isClient ? document.documentElement : null)
const { t } = useI18n()
const { results } = useFuseSearch(input)
const { results, fetchFuseListData } = useFuseSearch(input)
const searchInputRef = ref<HTMLInputElement>()
const searchContainer = ref<HTMLElement>()
@ -22,6 +22,11 @@ const searchContainer = ref<HTMLElement>()
onClickOutside(searchInputRef, () => {
// emit('close')
})
watch(() => props.open, () => {
if (props.open)
fetchFuseListData()
})
</script>
<template>

View File

@ -3,7 +3,8 @@ import { computed, ref, watch } from 'vue'
import { useFrontmatter } from 'valaxy'
import { useI18n } from 'vue-i18n'
import { differenceInMilliseconds, formatDistanceToNow } from 'date-fns'
import { differenceInMilliseconds } from 'date-fns/differenceInMilliseconds'
import { formatDistanceToNow } from 'date-fns/formatDistanceToNow'
const fm = useFrontmatter()
const { t, locale } = useI18n()

View File

@ -4,7 +4,7 @@ import { useFrontmatter, useFullUrl, useSiteConfig } from 'valaxy'
import type { Article } from '@unhead/schema-org'
import { defineArticle, useSchemaOrg } from '@unhead/schema-org'
import { toDate } from 'date-fns'
import { toDate } from 'date-fns/toDate'
const siteConfig = useSiteConfig()
const frontmatter = useFrontmatter()

View File

@ -27,12 +27,12 @@
"@ctrl/tinycolor": "^4.1.0",
"@explosions/fireworks": "^0.1.0",
"@iconify-json/ant-design": "^1.2.2",
"@iconify-json/simple-icons": "^1.2.11",
"@iconify-json/simple-icons": "^1.2.13",
"@vueuse/motion": "^2.2.6",
"animejs": "^3.2.2",
"gsap": "^3.12.5",
"primevue": "^4.2.2",
"radix-vue": "^1.9.9"
"primevue": "^4.2.3",
"radix-vue": "^1.9.10"
},
"devDependencies": {
"@types/animejs": "^3.1.12",

View File

@ -1,6 +1,6 @@
import { isClient, useStorage } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
import { setDefaultOptions } from 'date-fns'
import { setDefaultOptions } from 'date-fns/setDefaultOptions'
import { enUS, zhCN } from 'date-fns/locale'
export function useLocale() {

View File

@ -1 +1 @@
export * from './fuse'
export * from './useFuseSearch'

View File

@ -1,4 +1,4 @@
import { computed, onMounted, shallowRef } from 'vue'
import { computed, shallowRef } from 'vue'
import { useSiteConfig } from 'valaxy'
import type { MaybeRefOrGetter } from '@vueuse/shared'
import type { UseFuseOptions } from '@vueuse/integrations/useFuse'
@ -31,12 +31,13 @@ export function useFuseSearch<T extends FuseListItem = FuseListItem>(
// resultLimit: resultLimit.value,
// matchAllWhenSearchEmpty: matchAllWhenSearchEmpty.value,
}
const useFuseOptions = computed<UseFuseOptions<T>>(() => ({
...defaultOptions,
...options,
}))
const ruse = useFuse<T>(search, fuseListData, useFuseOptions)
const { fuse, results } = useFuse<T>(search, fuseListData, useFuseOptions)
async function fetchFuseListData(path?: string) {
const fuseListDataPath = path
@ -51,7 +52,10 @@ export function useFuseSearch<T extends FuseListItem = FuseListItem>(
fuseListData.value = data
}
onMounted(fetchFuseListData)
return {
fuse,
results,
return ruse
fetchFuseListData,
}
}

View File

@ -1,6 +1,7 @@
import type { ToDateOptionsWithTZ } from 'date-fns-tz'
import { format as formatWithTZ, toZonedTime } from 'date-fns-tz'
import { format, toDate } from 'date-fns'
import { format } from 'date-fns/format'
import { toDate } from 'date-fns/toDate'
import { DateTime } from 'luxon'
import type { Post } from '../../types'
import { i18n } from '../modules/valaxy'

View File

@ -4,7 +4,7 @@ import { render } from 'ejs'
import { ensureSuffix } from '@antfu/utils'
import { consola } from 'consola'
import { green, magenta } from 'picocolors'
import { format } from 'date-fns'
import { formatDate } from 'date-fns/format'
import { exists } from './fs'
import { getTemplate } from './scaffold'
import { defaultPostTemplate, userRoot } from './constants'
@ -67,5 +67,5 @@ async function genLayoutTemplate({
// 24h format
const dateFormat = 'yyyy-MM-dd HH:mm:ss'
return render(template, { title, layout, date: date ? format(new Date(), dateFormat) : '' })
return render(template, { title, layout, date: date ? formatDate(new Date(), dateFormat) : '' })
}

View File

@ -11,7 +11,7 @@ import consola from 'consola'
import { colors } from 'consola/utils'
import { getBorderCharacters, table } from 'table'
import { formatDate } from 'date-fns'
import { formatDate } from 'date-fns/format'
import ora from 'ora'
import { getCreatedTime, getUpdatedTime } from '../../utils/date'

View File

@ -47,7 +47,6 @@ const EXCLUDE = [
'vue',
// 'vue-i18n',
'vue-router',
'vue-demi',
'@vue/devtools-api',
// addon, todo add externals for addon

View File

@ -64,23 +64,23 @@
"dependencies": {
"@antfu/install-pkg": "^0.4.1",
"@antfu/utils": "^0.7.10",
"@clack/prompts": "^0.8.1",
"@clack/prompts": "^0.8.2",
"@iconify-json/ri": "^1.2.3",
"@intlify/unplugin-vue-i18n": "4",
"@types/katex": "^0.16.7",
"@types/luxon": "^3.4.2",
"@unhead/addons": "^1.11.11",
"@unhead/schema-org": "^1.11.11",
"@unhead/vue": "^1.11.11",
"@unhead/addons": "^1.11.13",
"@unhead/schema-org": "^1.11.13",
"@unhead/vue": "^1.11.13",
"@valaxyjs/devtools": "workspace:*",
"@valaxyjs/utils": "workspace:*",
"@vitejs/plugin-vue": "^5.2.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vue/devtools-api": "^7.6.4",
"@vueuse/core": "^11.2.0",
"@vueuse/integrations": "^11.2.0",
"@vueuse/core": "12.0.0-beta.1",
"@vueuse/integrations": "12.0.0-beta.1",
"consola": "^3.2.3",
"critters": "^0.0.25",
"cross-spawn": "^7.0.5",
"cross-spawn": "^7.0.6",
"css-i18n": "^0.0.5",
"date-fns": "^4.1.0",
"date-fns-tz": "^3.2.0",
@ -122,21 +122,21 @@
"qrcode": "^1.5.4",
"resolve-global": "^2.0.0",
"sass": "^1.81.0",
"shiki": "^1.23.0",
"shiki": "^1.23.1",
"star-markdown-css": "^0.5.3",
"unocss": "^0.64.1",
"unplugin-vue-components": "^0.27.4",
"unplugin-vue-markdown": "^0.26.2",
"unplugin-vue-router": "^0.10.8",
"vanilla-lazyload": "^19.1.3",
"vite": "^5.4.11",
"vite": "^6.0.0",
"vite-plugin-vue-devtools": "^7.6.4",
"vite-plugin-vue-layouts": "^0.11.0",
"vite-ssg": "^0.24.1",
"vite-ssg-sitemap": "^0.8.1",
"vue": "^3.5.13",
"vue-i18n": "^10.0.4",
"vue-router": "^4.4.5",
"vue-router": "^4.5.0",
"yargs": "^17.7.2"
},
"devDependencies": {

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ export default defineConfig({
deps: {
optimizer: {
ssr: {
include: ['@vue', '@vueuse', 'vue-demi'],
include: ['@vue', '@vueuse'],
},
},
},