plugin:vite:import-analysis - 无法解析源以进行导入分析,因为内容包含无效的 JS 语法。- 视图3

Kay*_*man 17 javascript vuejs3 vite

我已经将我的项目从 Vite 2.x 更新到 Vite 3.0.2,突然出现以下错误:

[plugin:vite:import-analysis] 无法解析导入分析源,因为内容包含无效的 JS 语法。如果您使用 JSX,请确保使用 .jsx 或 .tsx 扩展名命名该文件。

/Volumes/Disk/Web/wce-system/src/i18n.js:51:20

无法解析源以进行导入分析,因为内容包含无效的 JS 语法。

i18n.js 文件中没有任何问题,因为它在 Vite 2.x 上运行良好,但我将代码放在这里以防万一您需要:

import { nextTick } from "vue"
import { createI18n } from "vue-i18n"
import axios from "axios"
import tr from "@/locales/tr.json"
import en from "@/locales/en.json"

export const SUPPORT_LOCALES = ["tr", "en"]

export function setupI18n(options = { locale: "tr" }) {
const i18n = createI18n(options)
setI18nLanguage(i18n, options.locale)
  return i18n
}

export function setI18nLanguage(i18n, locale, url) {
  if (i18n.mode === "legacy") {
  i18n.global.locale = locale
} else {
  i18n.global.locale.value = locale
}       
axios.defaults.headers.common["Accept-Language"] = locale
document.querySelector("html").setAttribute("lang", locale)
}

export async function loadLocaleMessages(i18n, locale) {
 const messages = await import(
/* webpackChunkName: "locale-[request]" */ `./locales/${locale}.json`
)

i18n.global.setLocaleMessage(locale, messages.default)
 return nextTick()
}

const i18n = createI18n({
  legacy: false,
  locale: "tr",
  fallbackLocale: "tr",
  globalInjection: true,
  messages: {
    tr,
    en,
  },
})

export default i18n
Run Code Online (Sandbox Code Playgroud)

Kay*_*man 9

所以我想通了。这行:

const messages = await import(
  /* webpackChunkName: "locale-[request]" */ `./locales/${locale}.json`
)
Run Code Online (Sandbox Code Playgroud)

本来应该:

 const messages = await import(`./locales/${locale}.json`)
Run Code Online (Sandbox Code Playgroud)

我无法解释为什么会这样,但我在下面留下有关问题的链接。

Vite动态导入

可能有助于进一步调查