⚠️ IMPORTANT ⚠️ Please do not ignore this template. If you do, your issue will be closed immediately.
Describe the bug
I'm trying to use static url imports like the following:
import en from '../locales/en.json?url';
Raises the following error:
13:42:50 [vite] Internal server error: Failed to parse JSON file.
Plugin: vite:json
File: xxx/locales/de.json?url
at formatError (xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45829:46)
at TransformContext.error (xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45825:19)
at TransformContext.transform (xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46873:22)
at Object.transform (xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46027:53)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async transformRequest (xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61624:29)
at async xxx\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61732:32
Due to imported json being first transformed into a JS module:
export default '/locales/en.json';
before getting processed by the JSON Plugin which can't parse the JSON because it's an JS module..
Reproduction
I think the problem is obvious, I can imagine that the ?url part needs to be handled first before the json plugin kicks in.
System Info
vite version: 2.0.4
- Operating System: Windows 10 Pro
- Node version: v14.15.5
- Package manager (npm/yarn/pnpm) and version: 7.5.6
Logs (Optional if provided reproduction)
Everything from the start until the "crash".
Details
vite:time 0ms / +0ms
vite:spa-fallback Rewriting GET / to /index.html +0ms
vite:time 16ms /index.html +38ms
vite:resolve 1ms /development/wpp/node_modules/vite/dist/client/client -> xxx/node_modules/vite/dist/client/client.js +0ms
vite:resolve 3ms /@vite/client -> xxx/node_modules/vite/dist/client/client.js +1ms
vite:load 9ms [fs] /@vite/client +0ms
vite:resolve 1ms ./env -> xxx/node_modules/vite/dist/client/env.js +24ms
vite:transform 13ms /@vite/client +0ms
vite:time 34ms /@vite/client +84ms
vite:resolve 1ms /main.ts -> xxx/frontend/main.ts +7ms
vite:load 4ms [fs] /main.ts +26ms
vite:load 0ms [fs] ..\node_modules\vite\dist\client\env.js +25ms
vite:rewrite 0ms [no imports] xxx/node_modules/vite/dist/client/env.js +0ms
vite:transform 1ms ..\node_modules\vite\dist\client\env.js +36ms
vite:time 4ms ..\node_modules\vite\dist\client\env.js +35ms
vite:resolve 0ms vue -> xxx/node_modules/.vite/vue.js?v=1df3aa28 +48ms
vite:resolve 0ms ./App -> xxx/frontend/App.vue +1ms
vite:resolve 1ms /App.vue -> xxx/frontend/App.vue +1ms
vite:resolve 1ms ./plugins/day -> xxx/frontend/plugins/day.ts +1ms
vite:resolve 1ms /plugins/day.ts -> xxx/frontend/plugins/day.ts +1ms
vite:resolve 1ms ./store -> xxx/frontend/store/index.ts +2ms
vite:resolve 0ms /store/index.ts -> xxx/frontend/store/index.ts +0ms
vite:resolve 0ms ../config/frontend.config.json -> xxx/config/frontend.config.json +1ms
vite:resolve 0ms ./plugins/vee-validate -> xxx/frontend/plugins/vee-validate.ts +1ms
vite:resolve 0ms /plugins/vee-validate.ts -> xxx/frontend/plugins/vee-validate.ts +1ms
vite:resolve 1ms ./styles/index.scss -> xxx/frontend/styles/index.scss +1ms
vite:resolve 0ms /styles/index.scss -> xxx/frontend/styles/index.scss +0ms
vite:resolve 0ms ./plugins/i18n -> xxx/frontend/plugins/i18n.ts +1ms
vite:resolve 1ms /plugins/i18n.ts -> xxx/frontend/plugins/i18n.ts +1ms
vite:resolve 0ms ./plugins/router -> xxx/frontend/plugins/router.ts +0ms
vite:resolve 0ms /plugins/router.ts -> xxx/frontend/plugins/router.ts +1ms
vite:resolve 0ms @vueuse/head -> xxx/node_modules/.vite/@vueuse_head.js?v=1df3aa28 +0ms
vite:transform 59ms /main.ts +33ms
vite:time 68ms /main.ts +34ms
vite:load 5ms [fs] /plugins/day.ts +58ms
vite:load 10ms [fs] /App.vue +2ms
vite:hmr [self-accepts] App.vue +0ms
vite:transform 19ms /App.vue +46ms
vite:time 34ms /App.vue +45ms
vite:resolve 0ms dayjs/plugin/localizedFormat -> xxx/node_modules/.vite/dayjs_plugin_localizedFormat.js?v=1df3aa28&es-interop +59ms
vite:resolve 0ms dayjs/plugin/timezone -> xxx/node_modules/.vite/dayjs_plugin_timezone.js?v=1df3aa28&es-interop +5ms
vite:resolve 0ms dayjs/plugin/utc -> xxx/node_modules/.vite/dayjs_plugin_utc.js?v=1df3aa28&es-interop +1ms
vite:resolve 0ms dayjs -> xxx/node_modules/.vite/dayjs.js?v=1df3aa28&es-interop +1ms
vite:resolve 0ms dayjs/locale/de -> xxx/node_modules/.vite/dayjs_locale_de.js?v=1df3aa28&es-interop +1ms
vite:transform 41ms /plugins/day.ts +19ms
vite:time 50ms /plugins/day.ts +20ms
vite:load 11ms [fs] /store/index.ts +54ms
vite:load 11ms [fs] ..\config\frontend.config.json +2ms
vite:rewrite [skipped] xxx/config/frontend.config.json +116ms
vite:transform 1ms ..\config\frontend.config.json +18ms
vite:time 15ms ..\config\frontend.config.json?import +18ms
vite:load 7ms [fs] /plugins/vee-validate.ts +5ms
vite:resolve 0ms vuex -> xxx/node_modules/.vite/vuex.js?v=1df3aa28 +28ms
vite:resolve 1ms ../plugins/i18n -> xxx/frontend/plugins/i18n.ts +2ms
vite:resolve 0ms ./dialog -> xxx/frontend/store/dialog.ts +1ms
vite:resolve 0ms /store/dialog.ts -> xxx/frontend/store/dialog.ts +1ms
vite:resolve 0ms ./toast -> xxx/frontend/store/toast.ts +1ms
vite:resolve 0ms /store/toast.ts -> xxx/frontend/store/toast.ts +1ms
vite:transform 19ms /store/index.ts +16ms
vite:time 33ms /store/index.ts +15ms
vite:resolve 0ms vee-validate -> xxx/node_modules/.vite/vee-validate.js?v=1df3aa28 +8ms
vite:resolve 0ms @vee-validate/rules -> xxx/node_modules/.vite/@vee-validate_rules.js?v=1df3aa28 +1ms
vite:transform 20ms /plugins/vee-validate.ts +9ms
vite:time 31ms /plugins/vee-validate.ts +9ms
vite:load 8ms [fs] /styles/index.scss +25ms
vite:load 2ms [fs] /plugins/i18n.ts +2ms
vite:resolve 0ms @vee-validate/i18n -> xxx/node_modules/.vite/@vee-validate_i18n.js?v=1df3aa28 +11ms
vite:resolve 0ms vue-i18n -> xxx/node_modules/.vite/vue-i18n.js?v=1df3aa28 +5ms
vite:resolve 0ms ../locales/de.json?url -> xxx/frontend/locales/de.json?url +1ms
vite:resolve 0ms /locales/de.json?url -> xxx/frontend/locales/de.json?url +1ms
vite:resolve 0ms ../locales/en.json -> xxx/frontend/locales/en.json +1ms
vite:resolve 1ms /locales/en.json -> xxx/frontend/locales/en.json +1ms
vite:transform 14ms /plugins/i18n.ts +20ms
vite:time 19ms /plugins/i18n.ts +20ms
vite:load 2ms [fs] /plugins/router.ts +22ms
vite:resolve 0ms vue-router -> xxx/node_modules/.vite/vue-router.js?v=1df3aa28 +15ms
vite:resolve 1ms /@id/pages-generated -> null +3ms
vite:transform 8ms /plugins/router.ts +17ms
vite:time 15ms /plugins/router.ts +18ms
vite:resolve 2ms /development/wpp/frontend/styles/globals.scss -> xxx/frontend/styles/globals.scss +0ms
vite:resolve 2ms ~/styles/globals.scss -> xxx/frontend/styles/globals.scss +0ms
vite:resolve 6ms sassyfication -> xxx/node_modules/sassyfication/src/index.scss +13ms
vite:resolve 2ms frontend/styles/utilities/svg-icon -> null +903ms
vite:hmr [self-accepts] styles\index.scss +2s
vite:transform 1484ms /styles/index.scss +1s
vite:time 1495ms /styles/index.scss +1s
vite:load 1220ms [fs] /store/dialog.ts +1s
vite:load 1220ms [fs] /store/toast.ts +1ms
vite:rewrite 1ms [no imports] store\dialog.ts +2s
vite:transform 4ms /store/dialog.ts +7ms
vite:time 1226ms /store/dialog.ts +7ms
vite:rewrite 0ms [no imports] store\toast.ts +3ms
vite:transform 6ms /store/toast.ts +3ms
vite:time 1228ms /store/toast.ts +3ms
vite:load 0ms [plugin] /locales/de.json?url +24ms
13:47:38 [vite] Internal server error: Failed to parse JSON file.
Plugin: vite:json
File: xxx/frontend/locales/de.json?url
at formatError (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45829:46)
at TransformContext.error (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45825:19)
at TransformContext.transform (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46873:22)
at Object.transform (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46027:53)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async transformRequest (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61624:29)
at async C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61732:32
vite:time 22ms /locales/de.json?import&url +37ms
vite:load 14ms [fs] /locales/en.json +36ms
vite:rewrite [skipped] locales\en.json +56ms
vite:transform 2ms /locales/en.json +56ms
...
Describe the bug
I'm trying to use static url imports like the following:
Raises the following error:
Due to imported json being first transformed into a JS module:
before getting processed by the JSON Plugin which can't parse the JSON because it's an JS module..
Reproduction
I think the problem is obvious, I can imagine that the
?urlpart needs to be handled first before the json plugin kicks in.System Info
viteversion: 2.0.4Logs (Optional if provided reproduction)
Details
vite:time 0ms / +0ms vite:spa-fallback Rewriting GET / to /index.html +0ms vite:time 16ms /index.html +38ms vite:resolve 1ms /development/wpp/node_modules/vite/dist/client/client -> xxx/node_modules/vite/dist/client/client.js +0ms vite:resolve 3ms /@vite/client -> xxx/node_modules/vite/dist/client/client.js +1ms vite:load 9ms [fs] /@vite/client +0ms vite:resolve 1ms ./env -> xxx/node_modules/vite/dist/client/env.js +24ms vite:transform 13ms /@vite/client +0ms vite:time 34ms /@vite/client +84ms vite:resolve 1ms /main.ts -> xxx/frontend/main.ts +7ms vite:load 4ms [fs] /main.ts +26ms vite:load 0ms [fs] ..\node_modules\vite\dist\client\env.js +25ms vite:rewrite 0ms [no imports] xxx/node_modules/vite/dist/client/env.js +0ms vite:transform 1ms ..\node_modules\vite\dist\client\env.js +36ms vite:time 4ms ..\node_modules\vite\dist\client\env.js +35ms vite:resolve 0ms vue -> xxx/node_modules/.vite/vue.js?v=1df3aa28 +48ms vite:resolve 0ms ./App -> xxx/frontend/App.vue +1ms vite:resolve 1ms /App.vue -> xxx/frontend/App.vue +1ms vite:resolve 1ms ./plugins/day -> xxx/frontend/plugins/day.ts +1ms vite:resolve 1ms /plugins/day.ts -> xxx/frontend/plugins/day.ts +1ms vite:resolve 1ms ./store -> xxx/frontend/store/index.ts +2ms vite:resolve 0ms /store/index.ts -> xxx/frontend/store/index.ts +0ms vite:resolve 0ms ../config/frontend.config.json -> xxx/config/frontend.config.json +1ms vite:resolve 0ms ./plugins/vee-validate -> xxx/frontend/plugins/vee-validate.ts +1ms vite:resolve 0ms /plugins/vee-validate.ts -> xxx/frontend/plugins/vee-validate.ts +1ms vite:resolve 1ms ./styles/index.scss -> xxx/frontend/styles/index.scss +1ms vite:resolve 0ms /styles/index.scss -> xxx/frontend/styles/index.scss +0ms vite:resolve 0ms ./plugins/i18n -> xxx/frontend/plugins/i18n.ts +1ms vite:resolve 1ms /plugins/i18n.ts -> xxx/frontend/plugins/i18n.ts +1ms vite:resolve 0ms ./plugins/router -> xxx/frontend/plugins/router.ts +0ms vite:resolve 0ms /plugins/router.ts -> xxx/frontend/plugins/router.ts +1ms vite:resolve 0ms @vueuse/head -> xxx/node_modules/.vite/@vueuse_head.js?v=1df3aa28 +0ms vite:transform 59ms /main.ts +33ms vite:time 68ms /main.ts +34ms vite:load 5ms [fs] /plugins/day.ts +58ms vite:load 10ms [fs] /App.vue +2ms vite:hmr [self-accepts] App.vue +0ms vite:transform 19ms /App.vue +46ms vite:time 34ms /App.vue +45ms vite:resolve 0ms dayjs/plugin/localizedFormat -> xxx/node_modules/.vite/dayjs_plugin_localizedFormat.js?v=1df3aa28&es-interop +59ms vite:resolve 0ms dayjs/plugin/timezone -> xxx/node_modules/.vite/dayjs_plugin_timezone.js?v=1df3aa28&es-interop +5ms vite:resolve 0ms dayjs/plugin/utc -> xxx/node_modules/.vite/dayjs_plugin_utc.js?v=1df3aa28&es-interop +1ms vite:resolve 0ms dayjs -> xxx/node_modules/.vite/dayjs.js?v=1df3aa28&es-interop +1ms vite:resolve 0ms dayjs/locale/de -> xxx/node_modules/.vite/dayjs_locale_de.js?v=1df3aa28&es-interop +1ms vite:transform 41ms /plugins/day.ts +19ms vite:time 50ms /plugins/day.ts +20ms vite:load 11ms [fs] /store/index.ts +54ms vite:load 11ms [fs] ..\config\frontend.config.json +2ms vite:rewrite [skipped] xxx/config/frontend.config.json +116ms vite:transform 1ms ..\config\frontend.config.json +18ms vite:time 15ms ..\config\frontend.config.json?import +18ms vite:load 7ms [fs] /plugins/vee-validate.ts +5ms vite:resolve 0ms vuex -> xxx/node_modules/.vite/vuex.js?v=1df3aa28 +28ms vite:resolve 1ms ../plugins/i18n -> xxx/frontend/plugins/i18n.ts +2ms vite:resolve 0ms ./dialog -> xxx/frontend/store/dialog.ts +1ms vite:resolve 0ms /store/dialog.ts -> xxx/frontend/store/dialog.ts +1ms vite:resolve 0ms ./toast -> xxx/frontend/store/toast.ts +1ms vite:resolve 0ms /store/toast.ts -> xxx/frontend/store/toast.ts +1ms vite:transform 19ms /store/index.ts +16ms vite:time 33ms /store/index.ts +15ms vite:resolve 0ms vee-validate -> xxx/node_modules/.vite/vee-validate.js?v=1df3aa28 +8ms vite:resolve 0ms @vee-validate/rules -> xxx/node_modules/.vite/@vee-validate_rules.js?v=1df3aa28 +1ms vite:transform 20ms /plugins/vee-validate.ts +9ms vite:time 31ms /plugins/vee-validate.ts +9ms vite:load 8ms [fs] /styles/index.scss +25ms vite:load 2ms [fs] /plugins/i18n.ts +2ms vite:resolve 0ms @vee-validate/i18n -> xxx/node_modules/.vite/@vee-validate_i18n.js?v=1df3aa28 +11ms vite:resolve 0ms vue-i18n -> xxx/node_modules/.vite/vue-i18n.js?v=1df3aa28 +5ms vite:resolve 0ms ../locales/de.json?url -> xxx/frontend/locales/de.json?url +1ms vite:resolve 0ms /locales/de.json?url -> xxx/frontend/locales/de.json?url +1ms vite:resolve 0ms ../locales/en.json -> xxx/frontend/locales/en.json +1ms vite:resolve 1ms /locales/en.json -> xxx/frontend/locales/en.json +1ms vite:transform 14ms /plugins/i18n.ts +20ms vite:time 19ms /plugins/i18n.ts +20ms vite:load 2ms [fs] /plugins/router.ts +22ms vite:resolve 0ms vue-router -> xxx/node_modules/.vite/vue-router.js?v=1df3aa28 +15ms vite:resolve 1ms /@id/pages-generated -> null +3ms vite:transform 8ms /plugins/router.ts +17ms vite:time 15ms /plugins/router.ts +18ms vite:resolve 2ms /development/wpp/frontend/styles/globals.scss -> xxx/frontend/styles/globals.scss +0ms vite:resolve 2ms ~/styles/globals.scss -> xxx/frontend/styles/globals.scss +0ms vite:resolve 6ms sassyfication -> xxx/node_modules/sassyfication/src/index.scss +13ms vite:resolve 2ms frontend/styles/utilities/svg-icon -> null +903ms vite:hmr [self-accepts] styles\index.scss +2s vite:transform 1484ms /styles/index.scss +1s vite:time 1495ms /styles/index.scss +1s vite:load 1220ms [fs] /store/dialog.ts +1s vite:load 1220ms [fs] /store/toast.ts +1ms vite:rewrite 1ms [no imports] store\dialog.ts +2s vite:transform 4ms /store/dialog.ts +7ms vite:time 1226ms /store/dialog.ts +7ms vite:rewrite 0ms [no imports] store\toast.ts +3ms vite:transform 6ms /store/toast.ts +3ms vite:time 1228ms /store/toast.ts +3ms vite:load 0ms [plugin] /locales/de.json?url +24ms 13:47:38 [vite] Internal server error: Failed to parse JSON file. Plugin: vite:json File: xxx/frontend/locales/de.json?url at formatError (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45829:46) at TransformContext.error (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:45825:19) at TransformContext.transform (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46873:22) at Object.transform (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:46027:53) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async transformRequest (C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61624:29) at async C:\development\wpp\node_modules\vite\dist\node\chunks\dep-1bdbec90.js:61732:32 vite:time 22ms /locales/de.json?import&url +37ms vite:load 14ms [fs] /locales/en.json +36ms vite:rewrite [skipped] locales\en.json +56ms vite:transform 2ms /locales/en.json +56ms ...