build(deps): Node 26.13.0 + Astro 7.4.4 升级(含 exif loader 句柄修复)
- 宿主 Node 22.22.3 → 用户级安装 26.13.0(~/.local/node),systemd
unit PATH 前置,CI 构建链同步吃到新版本
- Astro 7.3.8 → 7.4.4(7.4 要求 Node ≥22.23.4,此前升级因 Node 版本
不足被 CI 拒绝;本次先升 Node 再升框架)
- exif loader 修复:Node 22.23+/26 把"GC 时仍打开的 FileHandle"从警告
升级为错误,exifr 接收文件路径时自开 fd 不显式关闭 → 全线 content/
photos/*.jpg 触发构建失败。改为一律 readFile 成 Buffer 再喂 exifr
(无 fd 参与)
验证: 全量构建 44 页 exit 0(node v26.13.0 + astro 7.4.4);E2E 37/37;
content-lint 0/0/0;后处理链(字体子集/首页内联)复跑通过;
unit PATH 实测已前置 node26
Spec: none (运行时与框架升级,全链验收)
Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
7c1462bde0
commit
227bc24797
3 files changed
+56
-66
No files matched your search
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
"@fontsource-variable/noto-serif-sc": "^5.3.1",
|
"@fontsource-variable/noto-serif-sc": "^5.3.1",
|
||||||
"@fontsource/jetbrains-mono": "^5.3.0",
|
"@fontsource/jetbrains-mono": "^5.3.0",
|
||||||
"@fontsource/noto-sans-sc": "^5.3.1",
|
"@fontsource/noto-sans-sc": "^5.3.1",
|
||||||
"astro": "^7.3.8",
|
"astro": "^7.4.4",
|
||||||
"astro-pagefind": "^2.0.1",
|
"astro-pagefind": "^2.0.1",
|
||||||
"exifr": "^7.1.3",
|
"exifr": "^7.1.3",
|
||||||
"lxgw-wenkai-screen-webfont": "^1.7.0",
|
"lxgw-wenkai-screen-webfont": "^1.7.0",
|
||||||
|
|||||||
Generated
+48
-64
@@ -27,11 +27,11 @@ importers:
|
|||||||
specifier: ^5.3.1
|
specifier: ^5.3.1
|
||||||
version: 5.3.1
|
version: 5.3.1
|
||||||
astro:
|
astro:
|
||||||
specifier: ^7.3.8
|
specifier: ^7.4.4
|
||||||
version: 7.3.8(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)
|
version: 7.4.4(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)
|
||||||
astro-pagefind:
|
astro-pagefind:
|
||||||
specifier: ^2.0.1
|
specifier: ^2.0.1
|
||||||
version: 2.0.1(astro@7.3.8(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1))
|
version: 2.0.1(astro@7.4.4(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1))
|
||||||
exifr:
|
exifr:
|
||||||
specifier: ^7.1.3
|
specifier: ^7.1.3
|
||||||
version: 7.1.3
|
version: 7.1.3
|
||||||
@@ -125,21 +125,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-IvwYLB8t1M86rKO4oPdBi9GP4gzXcgrVlNgocjwos1jeeUuEIV8d9Crn1PvYD/5IKteWOxpIHomf7e8iYlkE+Q==}
|
resolution: {integrity: sha512-IvwYLB8t1M86rKO4oPdBi9GP4gzXcgrVlNgocjwos1jeeUuEIV8d9Crn1PvYD/5IKteWOxpIHomf7e8iYlkE+Q==}
|
||||||
engines: {node: '>=22.12.0'}
|
engines: {node: '>=22.12.0'}
|
||||||
|
|
||||||
'@astrojs/internal-helpers@0.12.0':
|
|
||||||
resolution: {integrity: sha512-pKPuwCDtO0L7zgmt1JGd9X4Aes1+0SX3IEBSqBNPHsScYdPMlfmed3Y7DTbXyF7E+8ylnb563o/0OzGQPOFehw==}
|
|
||||||
|
|
||||||
'@astrojs/internal-helpers@0.13.0':
|
'@astrojs/internal-helpers@0.13.0':
|
||||||
resolution: {integrity: sha512-20jxQqnSmpskcGyad7N5l6Xf1gz0UCa6lNde44bEBdaXGpncEYfAZJ142r2ZgzBaG4dUyzGmhqZWv1INU2eiHQ==}
|
resolution: {integrity: sha512-20jxQqnSmpskcGyad7N5l6Xf1gz0UCa6lNde44bEBdaXGpncEYfAZJ142r2ZgzBaG4dUyzGmhqZWv1INU2eiHQ==}
|
||||||
|
|
||||||
'@astrojs/markdown-remark@7.3.5':
|
'@astrojs/markdown-remark@7.3.5':
|
||||||
resolution: {integrity: sha512-Xk0gvOMEpBul2zj5jZXS5WH2Gng/6dW7c3WWLXgip+LZGpY64frwTvBChznMtpnNIqVgFXSsu44RYrISojcodQ==}
|
resolution: {integrity: sha512-Xk0gvOMEpBul2zj5jZXS5WH2Gng/6dW7c3WWLXgip+LZGpY64frwTvBChznMtpnNIqVgFXSsu44RYrISojcodQ==}
|
||||||
|
|
||||||
'@astrojs/markdown-satteri@0.4.3':
|
'@astrojs/markdown-satteri@0.4.6':
|
||||||
resolution: {integrity: sha512-PFbEHPnwUlLvpXd7RXrrKM+j12akF4bG+DSuNuoN+3eiwjOwp4HaPi+QQdbkBV7QEYXmzyKca50OJsmGxhNIUA==}
|
resolution: {integrity: sha512-6biKp2lEAYycF3jhv91br+Otyf4EgDFkF1oRL9ks0u/m/YRGmI7XkGQ2MgaM35DslT03f7NtozKtlqfBNkp6bw==}
|
||||||
|
|
||||||
'@astrojs/prism@4.0.2':
|
|
||||||
resolution: {integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==}
|
|
||||||
engines: {node: '>=22.12.0'}
|
|
||||||
|
|
||||||
'@astrojs/prism@4.1.2':
|
'@astrojs/prism@4.1.2':
|
||||||
resolution: {integrity: sha512-jMrUEpFDarDO1KWPvVc9eSa8DSfwBlwEOHwX+8zvZQpiqXRGDxFnOXHsYqV6DP7w+0qIgTr98gS1GdQlm8ypWg==}
|
resolution: {integrity: sha512-jMrUEpFDarDO1KWPvVc9eSa8DSfwBlwEOHwX+8zvZQpiqXRGDxFnOXHsYqV6DP7w+0qIgTr98gS1GdQlm8ypWg==}
|
||||||
@@ -151,9 +144,9 @@ packages:
|
|||||||
'@astrojs/sitemap@3.7.4':
|
'@astrojs/sitemap@3.7.4':
|
||||||
resolution: {integrity: sha512-LbKNC24bdUWcQf/pThB6qLlSqHojxGjZDURIzFocY8rlWnAn2t74nnhnK6S5x0NHriHoAduLEpVjRykmeGiVvA==}
|
resolution: {integrity: sha512-LbKNC24bdUWcQf/pThB6qLlSqHojxGjZDURIzFocY8rlWnAn2t74nnhnK6S5x0NHriHoAduLEpVjRykmeGiVvA==}
|
||||||
|
|
||||||
'@astrojs/telemetry@3.3.3':
|
'@astrojs/telemetry@3.4.2':
|
||||||
resolution: {integrity: sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==}
|
resolution: {integrity: sha512-2JOMRUxJrBSfiVDfeKLv1wBmvSIx1Y6u2YEO8awZ9qSq3u/rNAiUyFdOYi8dHv91kHrmYEQX7pRDw0J4xyj3UA==}
|
||||||
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
|
engines: {node: '>=22.23.4'}
|
||||||
|
|
||||||
'@babel/helper-string-parser@7.29.7':
|
'@babel/helper-string-parser@7.29.7':
|
||||||
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
|
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
|
||||||
@@ -707,9 +700,9 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
astro: ^2.0.4 || ^3 || ^4 || ^5 || ^6 || ^7
|
astro: ^2.0.4 || ^3 || ^4 || ^5 || ^6 || ^7
|
||||||
|
|
||||||
astro@7.3.8:
|
astro@7.4.4:
|
||||||
resolution: {integrity: sha512-LHzDHSaV+YzZiR3EFndDYTLLeNeuMtP1qX1FLcCNUUHOCqTTIWPczy2UV3zpA5VqvJe5cWZolqM9Z8JFqR2i9w==}
|
resolution: {integrity: sha512-e+BzhGCaIY/H1tV/BQPTbOPZVZ8wuu6+bbpc+3oSMH2UgoB1l9peSGASk6nswtYra9PO9OoMREhldKtQkZ5TVw==}
|
||||||
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
|
engines: {node: '>=22.23.4', npm: '>=9.6.5', pnpm: '>=7.1.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@astrojs/markdown-remark': ^7.3.0
|
'@astrojs/markdown-remark': ^7.3.0
|
||||||
@@ -826,8 +819,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
|
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
devalue@5.9.4:
|
devalue@6.0.3:
|
||||||
resolution: {integrity: sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==}
|
resolution: {integrity: sha512-3woMEITftG1wKeO/4d/QXH1DVKctTSZg3jNGPpjp9hNr5Hos8MCFF5McTML5ZtgKDObm2R591B0spRp2IVernA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
devlop@1.1.0:
|
devlop@1.1.0:
|
||||||
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
||||||
@@ -929,14 +923,13 @@ packages:
|
|||||||
picomatch:
|
picomatch:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
find-proc@0.2.0:
|
|
||||||
resolution: {integrity: sha512-a6h2nTrgB3g5Wrn4au9Ux4kMk7IJtyF6oA8uGn+mk3weLZssUtc1cp6meHIzzuW2o1srrBAxzkmXLbqjRkgB6w==}
|
|
||||||
engines: {node: ^20.19.0 || >=22.12.0}
|
|
||||||
|
|
||||||
flattie@1.1.1:
|
flattie@1.1.1:
|
||||||
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
|
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
fnv1a-64@0.1.2:
|
||||||
|
resolution: {integrity: sha512-mJbcILTPybAR1jdOwt/lVv8N2cffeJFFP+gVbSAwLEx1ujXH27RpPd8Rokec/KX9c76UYIB6Co+H4lQzxPnJfA==}
|
||||||
|
|
||||||
fontace@0.4.1:
|
fontace@0.4.1:
|
||||||
resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==}
|
resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==}
|
||||||
|
|
||||||
@@ -1338,9 +1331,6 @@ packages:
|
|||||||
ofetch@1.5.1:
|
ofetch@1.5.1:
|
||||||
resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==}
|
resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==}
|
||||||
|
|
||||||
ohash@2.0.12:
|
|
||||||
resolution: {integrity: sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==}
|
|
||||||
|
|
||||||
oniguruma-parser@0.12.2:
|
oniguruma-parser@0.12.2:
|
||||||
resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
|
resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
|
||||||
|
|
||||||
@@ -1552,6 +1542,9 @@ packages:
|
|||||||
space-separated-tokens@2.0.2:
|
space-separated-tokens@2.0.2:
|
||||||
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
||||||
|
|
||||||
|
std-env@4.3.0:
|
||||||
|
resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==}
|
||||||
|
|
||||||
stringify-entities@4.0.4:
|
stringify-entities@4.0.4:
|
||||||
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
|
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
|
||||||
|
|
||||||
@@ -1587,6 +1580,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
|
||||||
|
tinyps@0.5.1:
|
||||||
|
resolution: {integrity: sha512-B6Ykif5HflC3AdDkS4Zst/2muYVfeXoVMy+KorqH80s/1x4vunIORpNySH681X7fjj+dFM9MDKD6/Hsccjb87Q==}
|
||||||
|
|
||||||
totalist@3.0.1:
|
totalist@3.0.1:
|
||||||
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
|
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -1622,8 +1618,8 @@ packages:
|
|||||||
unified@11.0.5:
|
unified@11.0.5:
|
||||||
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
|
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
|
||||||
|
|
||||||
unifont@0.7.5:
|
unifont@1.0.3:
|
||||||
resolution: {integrity: sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==}
|
resolution: {integrity: sha512-XGnEwj5sWdCbiBX01mWLSBncS0yMRjnLygau3IfdOlfjMacNIQvTGW4VH7pWBq+gGWArfSef/CensMLjMmIr/A==}
|
||||||
|
|
||||||
unist-util-is@6.0.1:
|
unist-util-is@6.0.1:
|
||||||
resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
|
resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
|
||||||
@@ -1863,17 +1859,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/compiler-binding': 0.5.2
|
'@astrojs/compiler-binding': 0.5.2
|
||||||
|
|
||||||
'@astrojs/internal-helpers@0.12.0':
|
|
||||||
dependencies:
|
|
||||||
'@types/hast': 3.0.5
|
|
||||||
'@types/mdast': 4.0.4
|
|
||||||
picomatch: 4.0.7
|
|
||||||
retext-smartypants: 6.2.0
|
|
||||||
shiki: 4.5.0
|
|
||||||
smol-toml: 1.9.1
|
|
||||||
unified: 11.0.5
|
|
||||||
yaml: 2.9.1
|
|
||||||
|
|
||||||
'@astrojs/internal-helpers@0.13.0':
|
'@astrojs/internal-helpers@0.13.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/hast': 3.0.5
|
'@types/hast': 3.0.5
|
||||||
@@ -1912,17 +1897,13 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@astrojs/markdown-satteri@0.4.3':
|
'@astrojs/markdown-satteri@0.4.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/internal-helpers': 0.12.0
|
'@astrojs/internal-helpers': 0.13.0
|
||||||
'@astrojs/prism': 4.0.2
|
'@astrojs/prism': 4.1.2
|
||||||
github-slugger: 2.0.0
|
github-slugger: 2.0.0
|
||||||
satteri: 0.10.5
|
satteri: 0.10.5
|
||||||
|
|
||||||
'@astrojs/prism@4.0.2':
|
|
||||||
dependencies:
|
|
||||||
prismjs: 1.30.0
|
|
||||||
|
|
||||||
'@astrojs/prism@4.1.2':
|
'@astrojs/prism@4.1.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
prismjs: 1.30.0
|
prismjs: 1.30.0
|
||||||
@@ -1938,7 +1919,7 @@ snapshots:
|
|||||||
sitemap: 9.0.1
|
sitemap: 9.0.1
|
||||||
zod: 4.6.7
|
zod: 4.6.7
|
||||||
|
|
||||||
'@astrojs/telemetry@3.3.3':
|
'@astrojs/telemetry@3.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
ci-info: 4.4.0
|
ci-info: 4.4.0
|
||||||
dset: 3.1.4
|
dset: 3.1.4
|
||||||
@@ -2392,19 +2373,19 @@ snapshots:
|
|||||||
|
|
||||||
astring@1.9.0: {}
|
astring@1.9.0: {}
|
||||||
|
|
||||||
astro-pagefind@2.0.1(astro@7.3.8(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)):
|
astro-pagefind@2.0.1(astro@7.4.4(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@pagefind/component-ui': 1.5.2
|
'@pagefind/component-ui': 1.5.2
|
||||||
astro: 7.3.8(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)
|
astro: 7.4.4(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1)
|
||||||
pagefind: 1.5.2
|
pagefind: 1.5.2
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
|
|
||||||
astro@7.3.8(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1):
|
astro@7.4.4(@astrojs/markdown-remark@7.3.5)(@types/node@24.19.2)(yaml@2.9.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/compiler-rs': 0.5.2
|
'@astrojs/compiler-rs': 0.5.2
|
||||||
'@astrojs/internal-helpers': 0.12.0
|
'@astrojs/internal-helpers': 0.13.0
|
||||||
'@astrojs/markdown-satteri': 0.4.3
|
'@astrojs/markdown-satteri': 0.4.6
|
||||||
'@astrojs/telemetry': 3.3.3
|
'@astrojs/telemetry': 3.4.2
|
||||||
'@capsizecss/unpack': 4.0.1
|
'@capsizecss/unpack': 4.0.1
|
||||||
'@clack/prompts': 1.8.1
|
'@clack/prompts': 1.8.1
|
||||||
'@oslojs/encoding': 1.1.0
|
'@oslojs/encoding': 1.1.0
|
||||||
@@ -2415,11 +2396,10 @@ snapshots:
|
|||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
common-ancestor-path: 2.0.0
|
common-ancestor-path: 2.0.0
|
||||||
cookie: 2.0.1
|
cookie: 2.0.1
|
||||||
devalue: 5.9.4
|
devalue: 6.0.3
|
||||||
diff: 9.0.0
|
diff: 9.0.0
|
||||||
dset: 3.1.4
|
dset: 3.1.4
|
||||||
es-module-lexer: 3.0.4
|
es-module-lexer: 3.0.4
|
||||||
find-proc: 0.2.0
|
|
||||||
flattie: 1.1.1
|
flattie: 1.1.1
|
||||||
fontace: 0.4.1
|
fontace: 0.4.1
|
||||||
get-tsconfig: 5.0.0-beta.6
|
get-tsconfig: 5.0.0-beta.6
|
||||||
@@ -2444,8 +2424,9 @@ snapshots:
|
|||||||
tinyclip: 1.0.3
|
tinyclip: 1.0.3
|
||||||
tinyexec: 1.3.1
|
tinyexec: 1.3.1
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
|
tinyps: 0.5.1
|
||||||
ultrahtml: 1.7.0
|
ultrahtml: 1.7.0
|
||||||
unifont: 0.7.5
|
unifont: 1.0.3
|
||||||
unstorage: 1.17.6
|
unstorage: 1.17.6
|
||||||
verkit: 0.5.0
|
verkit: 0.5.0
|
||||||
vite: 8.3.5(@types/node@24.19.2)(yaml@2.9.1)
|
vite: 8.3.5(@types/node@24.19.2)(yaml@2.9.1)
|
||||||
@@ -2575,7 +2556,7 @@ snapshots:
|
|||||||
|
|
||||||
detect-libc@2.1.2: {}
|
detect-libc@2.1.2: {}
|
||||||
|
|
||||||
devalue@5.9.4: {}
|
devalue@6.0.3: {}
|
||||||
|
|
||||||
devlop@1.1.0:
|
devlop@1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -2692,10 +2673,10 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
picomatch: 4.0.7
|
picomatch: 4.0.7
|
||||||
|
|
||||||
find-proc@0.2.0: {}
|
|
||||||
|
|
||||||
flattie@1.1.1: {}
|
flattie@1.1.1: {}
|
||||||
|
|
||||||
|
fnv1a-64@0.1.2: {}
|
||||||
|
|
||||||
fontace@0.4.1:
|
fontace@0.4.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
fontkitten: 1.0.3
|
fontkitten: 1.0.3
|
||||||
@@ -3420,8 +3401,6 @@ snapshots:
|
|||||||
node-fetch-native: 1.6.7
|
node-fetch-native: 1.6.7
|
||||||
ufo: 1.6.4
|
ufo: 1.6.4
|
||||||
|
|
||||||
ohash@2.0.12: {}
|
|
||||||
|
|
||||||
oniguruma-parser@0.12.2: {}
|
oniguruma-parser@0.12.2: {}
|
||||||
|
|
||||||
oniguruma-to-es@4.3.6:
|
oniguruma-to-es@4.3.6:
|
||||||
@@ -3753,6 +3732,8 @@ snapshots:
|
|||||||
|
|
||||||
space-separated-tokens@2.0.2: {}
|
space-separated-tokens@2.0.2: {}
|
||||||
|
|
||||||
|
std-env@4.3.0: {}
|
||||||
|
|
||||||
stringify-entities@4.0.4:
|
stringify-entities@4.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
character-entities-html4: 2.1.0
|
character-entities-html4: 2.1.0
|
||||||
@@ -3795,6 +3776,8 @@ snapshots:
|
|||||||
fdir: 6.5.0(picomatch@4.0.7)
|
fdir: 6.5.0(picomatch@4.0.7)
|
||||||
picomatch: 4.0.7
|
picomatch: 4.0.7
|
||||||
|
|
||||||
|
tinyps@0.5.1: {}
|
||||||
|
|
||||||
totalist@3.0.1: {}
|
totalist@3.0.1: {}
|
||||||
|
|
||||||
trim-lines@3.0.1: {}
|
trim-lines@3.0.1: {}
|
||||||
@@ -3827,10 +3810,11 @@ snapshots:
|
|||||||
trough: 2.2.0
|
trough: 2.2.0
|
||||||
vfile: 6.0.3
|
vfile: 6.0.3
|
||||||
|
|
||||||
unifont@0.7.5:
|
unifont@1.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
css-tree: 3.2.1
|
css-tree: 3.2.1
|
||||||
ohash: 2.0.12
|
fnv1a-64: 0.1.2
|
||||||
|
std-env: 4.3.0
|
||||||
undici: 8.12.3
|
undici: 8.12.3
|
||||||
|
|
||||||
unist-util-is@6.0.1:
|
unist-util-is@6.0.1:
|
||||||
|
|||||||
+7
-1
@@ -67,7 +67,13 @@ export function mapExifTags(raw: ExifRaw): PhotoExif {
|
|||||||
*/
|
*/
|
||||||
export async function extractPhotoExif(input: string | URL | Uint8Array): Promise<PhotoExif> {
|
export async function extractPhotoExif(input: string | URL | Uint8Array): Promise<PhotoExif> {
|
||||||
try {
|
try {
|
||||||
const source = input instanceof URL ? fileURLToPath(input) : input;
|
// Node 22.23+/26 把"GC 时仍打开的 FileHandle"升级为错误:exifr 收到文件
|
||||||
|
// 路径会自行开 fd 且不显式关闭,故这里统一读成 Buffer 再喂(2026-11-02
|
||||||
|
// Node 26 升级实测炸点,content/photos/*.jpg 全量触发)
|
||||||
|
const source =
|
||||||
|
input instanceof Uint8Array
|
||||||
|
? input
|
||||||
|
: await readFile(input instanceof URL ? fileURLToPath(input) : input);
|
||||||
return mapExifTags(await exifr.parse(source, { tiff: true, exif: true }));
|
return mapExifTags(await exifr.parse(source, { tiff: true, exif: true }));
|
||||||
} catch {
|
} catch {
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
Reference in new issue
Block a user