【问题标题】:Vetur error 2300 Duplicate identifier '(Missing)'Vetur 错误 2300 重复标识符“(缺失)”
【发布时间】:2022-01-26 01:10:45
【问题描述】:

我在打字稿 nuxt.js 应用程序中遇到了 Vetur 这个奇怪的错误。它会在所有组件的第一行显示此错误消息,无论是空行还是有标签。

我不确定这个错误是什么时候开始出现的,或者它是什么意思?

任何帮助将不胜感激,非常感谢!

【问题讨论】:

  • 一些实际代码或minimal reproducible example 在这里可能会有所帮助。
  • 我不知道它是如何开始发生的或错误是如何产生的,所以我没有可重现的示例。此外,错误存在于任何给定 vue 组件的第一行,因此任何给定组件的代码都不会相关。我很乐意以任何其他方式提供帮助。

标签: javascript typescript vue.js nuxt.js vetur


【解决方案1】:

确保 vscode <=4.4.4 的全局 ts 版本。使用较新的typescript 可能是一些依赖项(如@microsoft/api-extractor)。

创建vetur.config.js。在settings 中设置"vetur.useWorkspaceDependencies": "false"。示例:

module.exports = {
    settings: {
        "vetur.useWorkspaceDependencies": false,
        "vetur.experimental.templateInterpolationService": true
    }
}

检查Vue Language Server中的vscode OUTPUT面板,可能:

[INFO ] Find node_modules paths in xxxxxxx - 247ms
[INFO ] Loaded bundled typescript@4.4.4.
[INFO ] Loaded bundled prettier.
[INFO ] Loaded bundled @starptech/prettyhtml.
[INFO ] Loaded bundled prettier-eslint.
[INFO ] Loaded bundled prettier-tslint.
[INFO ] Loaded bundled stylus-supremacy.
[INFO ] Loaded bundled @prettier/plugin-pug.

成功了!

【讨论】:

    【解决方案2】:

    公认的答案就像当你的手指受伤时砍掉你的手臂!如果你禁用templateInterpolationService,你会损失很大一部分 Vetur 的价值。

    对我来说,Vetur v0.35.0 在我升级 typescript > 4.4 时坏了

    您可以通过在项目根目录中输入 npm ls typescript 来检查您正在使用的打字稿版本。

    如果您正在运行 typescript 4.4.4(或更低),请尝试以下操作:

    重启 Vue 语言服务器(在 VSCode 中):
    查看 ->
    命令面板.. ->
    Vetur:重启VLS(Vue语言服务器)

    如果您正在运行 typescript 4.5 或更高版本,您可能会遇到此错误。在这种情况下仍在努力寻找解决办法。

    或者,要强制您的环境全面使用旧版本的 typescript,您可以确保您的 npm 版本为 8.3+,并使用 package.json 的新“覆盖”部分:

    ...
      "overrides": {
        "typescript": "4.4.4"
      },
    ...
    

    【讨论】:

    • 今天突然出现这个错误。不幸的是,这并不能解决我的问题。
    【解决方案3】:

    原来这是因为 Vetur 实验性的templateInterpolationService 属性。通过在vetur.config.js 文件中将其转换为false

    module.exports = {
      settings: {
        /* .. */
        'vetur.experimental.templateInterpolationService': false
        /* .. */
      }
    };
    

    Vetur 阻止了对我的组件的意外干扰。

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 1970-01-01
      • 2019-02-18
      • 2016-12-27
      • 2016-10-20
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多