From eae3a85d261424d5d1a71f85a57f593391bd3fd5 Mon Sep 17 00:00:00 2001 From: cole Date: Mon, 25 Mar 2024 16:57:56 +0800 Subject: [PATCH] feat: introduce `pathe` to resolve path --- package.json | 3 ++- pnpm-lock.yaml | 24 +++++++++++------------- src/index.ts | 10 +++++----- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index ad3b0db..11d1cc8 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,8 @@ "font-carrier": "^0.3.1", "fs-extra": "^11.2.0", "kolorist": "^1.8.0", - "magic-string": "^0.30.8" + "magic-string": "^0.30.8", + "pathe": "^1.1.2" }, "devDependencies": { "@bernankez/eslint-config": "^0.7.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf5f59f..5431343 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: magic-string: specifier: ^0.30.8 version: 0.30.8 + pathe: + specifier: ^1.1.2 + version: 1.1.2 devDependencies: '@bernankez/eslint-config': specifier: ^0.7.4 @@ -1662,14 +1665,14 @@ packages: dependencies: '@vitest/utils': 1.3.1 p-limit: 5.0.0 - pathe: 1.1.1 + pathe: 1.1.2 dev: true /@vitest/snapshot@1.3.1: resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} dependencies: magic-string: 0.30.8 - pathe: 1.1.1 + pathe: 1.1.2 pretty-format: 29.7.0 dev: true @@ -4273,7 +4276,7 @@ packages: jiti: 1.20.0 mlly: 1.4.2 mri: 1.2.0 - pathe: 1.1.1 + pathe: 1.1.2 typescript: 5.4.2 dev: true @@ -4281,7 +4284,7 @@ packages: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: acorn: 8.10.0 - pathe: 1.1.1 + pathe: 1.1.2 pkg-types: 1.0.3 ufo: 1.3.0 dev: true @@ -4639,13 +4642,8 @@ packages: engines: {node: '>=8'} dev: true - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true - /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -4675,7 +4673,7 @@ packages: dependencies: jsonc-parser: 3.2.0 mlly: 1.4.2 - pathe: 1.1.1 + pathe: 1.1.2 dev: true /pluralize@8.0.0: @@ -5560,7 +5558,7 @@ packages: magic-string: 0.30.8 mkdist: 1.3.0(typescript@5.4.2) mlly: 1.4.2 - pathe: 1.1.1 + pathe: 1.1.2 pkg-types: 1.0.3 pretty-bytes: 6.1.1 rollup: 3.29.1 @@ -5649,7 +5647,7 @@ packages: dependencies: cac: 6.7.14 debug: 4.3.4 - pathe: 1.1.1 + pathe: 1.1.2 picocolors: 1.0.0 vite: 5.1.6(@types/node@20.11.25) transitivePeerDependencies: @@ -5761,7 +5759,7 @@ packages: execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.8 - pathe: 1.1.1 + pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.0.0 diff --git a/src/index.ts b/src/index.ts index 9d7456c..ef996f9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,6 @@ -import { basename, dirname, extname, isAbsolute, join, relative, resolve } from "node:path"; +import { basename, dirname, extname, isAbsolute, join, relative } from "node:path"; import { readFileSync } from "node:fs"; +import { resolve } from "pathe"; import { createLogger, normalizePath } from "vite"; import type { Logger, Plugin, ResolvedConfig } from "vite"; import { bold, lightBlue, lightGreen, lightRed, lightYellow } from "kolorist"; @@ -86,7 +87,7 @@ const FontCarrier: (options: FontCarrierOptions) => Plugin = (options) => { fs.outputFileSync(tempPath, compressedSource); font.tempPath = tempPath; } - font.hashname = font.underPublicDir ? `${font.filename}${font.outputExtname}` : normalizePath(join(resolvedConfig.build.assetsDir, `${font.filename}-${font.hash.slice(0, 8)}${font.outputExtname}`)); + font.hashname = font.underPublicDir ? `${font.filename}${font.outputExtname}` : join(resolvedConfig.build.assetsDir, `${font.filename}-${font.hash.slice(0, 8)}${font.outputExtname}`); font.compressed = true; return font; } @@ -127,7 +128,6 @@ const FontCarrier: (options: FontCarrierOptions) => Plugin = (options) => { fs.emptyDirSync(tempDir); }, resolveId(id, importer, { isEntry }) { - id = normalizePath(id); if (!isEntry && importer) { const dir = dirname(importer); let path: string; @@ -144,14 +144,14 @@ const FontCarrier: (options: FontCarrierOptions) => Plugin = (options) => { }, load(id) { if (id.startsWith("\0vite-plugin-font-carrier:")) { - const path = resolve(normalizePath(id.replace("\0vite-plugin-font-carrier:", ""))); + const path = resolve(id.replace("\0vite-plugin-font-carrier:", "")); const font = fontAssets.find(font => font.path === path); if (font) { if (resolvedConfig.command === "serve") { if (!font.compressed) { compressFont(font, true); } - return `export default "${normalizePath(relative(root, font.tempPath!))}";`; + return `export default "${relative(root, font.tempPath!)}";`; } else { if (!font.compressed) { compressFont(font, false);