chore: unify i18n resolve in dev
Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
parent
9801006cb7
commit
b326501fc3
|
|
@ -12,6 +12,7 @@ import { getGitHash } from "../../../scripts/lib"
|
|||
import { astPlugin } from "../plugins/vite/ast"
|
||||
import { circularImportRefreshPlugin } from "../plugins/vite/hmr"
|
||||
import { customI18nHmrPlugin } from "../plugins/vite/i18n-hmr"
|
||||
import { localesJsonPlugin } from "../plugins/vite/locales-json"
|
||||
import i18nCompleteness from "../plugins/vite/utils/i18n-completeness"
|
||||
|
||||
const pkgDir = resolve(dirname(fileURLToPath(import.meta.url)), "..")
|
||||
|
|
@ -73,6 +74,7 @@ export const viteRenderBaseConfig = {
|
|||
})
|
||||
},
|
||||
},
|
||||
localesJsonPlugin(),
|
||||
react({
|
||||
// jsxImportSource: "@welldone-software/why-did-you-render", // <-----
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
import path from "node:path"
|
||||
import { fileURLToPath } from "node:url"
|
||||
|
||||
import { set } from "es-toolkit/compat"
|
||||
import type { Plugin } from "vite"
|
||||
|
||||
const __dirname = fileURLToPath(new URL(".", import.meta.url))
|
||||
const localesDir = path.resolve(__dirname, "../../../../locales")
|
||||
|
||||
export function localesJsonPlugin(): Plugin {
|
||||
let isBuild = false
|
||||
return {
|
||||
name: "locales-json-transform",
|
||||
enforce: "pre",
|
||||
configResolved(config) {
|
||||
isBuild = config.command === "build"
|
||||
},
|
||||
async transform(code, id) {
|
||||
if (isBuild) {
|
||||
return null
|
||||
}
|
||||
if (!id.includes(localesDir) || !id.endsWith(".json")) {
|
||||
return null
|
||||
}
|
||||
|
||||
const content = JSON.parse(code)
|
||||
const obj = {}
|
||||
|
||||
const keys = Object.keys(content as object)
|
||||
for (const accessorKey of keys) {
|
||||
set(obj, accessorKey, (content as any)[accessorKey])
|
||||
}
|
||||
|
||||
console.info("[locales-json-transform] Transformed:", id)
|
||||
return {
|
||||
code: JSON.stringify(obj),
|
||||
map: null,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -137,6 +137,7 @@ export default ({ mode }) => {
|
|||
},
|
||||
plugins: [
|
||||
...((viteRenderBaseConfig.plugins ?? []) as any),
|
||||
|
||||
localesPlugin(),
|
||||
isWebBuild &&
|
||||
VitePWA({
|
||||
|
|
|
|||
Loading…
Reference in New Issue