Skip to content

Loading JSON with the ?url flag causes the import to fail #2455

Description

@simonwep

⚠️ 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 ...

Activity

  1. added
    p3-minor-bugAn edge case that only affects very specific usage (priority)
    and removed on Mar 15, 2021
  2. duckbrain commented on Mar 15, 2021

    @duckbrain

    This is fixed Vite 2.1.0.

  3. locked and limited conversation to collaborators on Jul 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    p3-minor-bugAn edge case that only affects very specific usage (priority)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions