构建时出现 TypeScript 错误,因为我导入提取的 .graphql 文件并且无法解析类型

Posted

技术标签:

【中文标题】构建时出现 TypeScript 错误,因为我导入提取的 .graphql 文件并且无法解析类型【英文标题】:TypeScript errors when building because I import extracted .graphql files and the type can't be resolved 【发布时间】:2020-12-23 19:02:38 【问题描述】:

我有以下文件 @/graphql/mutations.graphql 包含:

mutation addCharacterToUser($userId: ID!, $characterId: ID!) 
    addCharacterToUser(userId: $userId, characterId: $characterId) 
        characterIds
    


mutation newCharacter ($name: String!, $age: Int!) 
    newCharacter(character: name: $name, age: $age) 
        id
    

现在我在我的一个 Vue.js 组件中使用它(我将 TypeScript 与 Vue.js 一起使用)。 但是,当我运行 npm run build 时,我收到以下错误:

 error  in C:/Development/Project/src/components/character/CharacterCreationDialog.vue

ERROR in C:/Development/Project/src/components/character/CharacterCreationDialog.vue(59,50):
59:50 Cannot find module '@/graphql/character/mutations.graphql' or its corresponding type declarations.
    57 | <script lang="ts">
    58 | import Vue from 'vue'
  > 59 | import  addCharacterToUser, newCharacter  from '@/graphql/character/mutations.graphql'
       |                                                  ^
    60 | 
    61 | export default Vue.extend(
    62 |   name: 'CharacterCreationDialog',

我研究了一些东西,但我无法真正理解问题所在。我对 TypeScript 的经验很少。

【问题讨论】:

好像要加babel loader才能支持加载gql文件 【参考方案1】:

您的项目工作区中似乎没有安装所需的模块@/graphql/character/mutations.graphql。你能试试看我是否错过了这个模块吗?

检查您在 package.json 中的依赖关系,并确保您可以运行 npm install 而没有错误。

【讨论】:

我应该错过哪个模块?使用vue ui 整个依赖管理有点自动化,所以我没有真正的概述 您可以尝试运行npm list 以查看您的工作区中安装了哪些依赖项/模块,并可能将其通过管道传送到graphql 的grep?使用此代码npm list | grep 'graphql' graphql/character/mutations.graphql 来自我的项目,它不是已安装的依赖项

以上是关于构建时出现 TypeScript 错误,因为我导入提取的 .graphql 文件并且无法解析类型的主要内容,如果未能解决你的问题,请参考以下文章

无法解析错误:伊斯坦布尔“导入”时出现意外令牌

使用typescript(newb)导入外部模块时出现问题

使用字符串类型参数访问枚举时出现 TypeScript TS7015 错误

Typescript 1.5 模块导入导出错误

导入节点模块时出现流错误“无法解析模块”

Typescript:更新 Firebase 函数依赖项时出现编译错误