Nuxt TypeScript 错误:nuxt:typescript 找不到模块'@/my-module'
Posted
技术标签:
【中文标题】Nuxt TypeScript 错误:nuxt:typescript 找不到模块\'@/my-module\'【英文标题】:Nuxt TypeScript error: nuxt:typescript Cannot find module '@/my-module'Nuxt TypeScript 错误:nuxt:typescript 找不到模块'@/my-module' 【发布时间】:2020-02-16 20:41:39 【问题描述】:我已经使用来自https://typescript.nuxt.org 的说明使用 TypeScript 设置 Nuxt。过渡非常无缝且没问题,除了我无法摆脱nuxt:typescript
“找不到模块”的错误,这显然是误报。
我的导入如下所示:
import InputField from '@/components/InputField.vue'
我尝试过使用~/
并且不使用.vue
扩展名。没有任何效果。
我的tsconfig.json
看起来像这样:
"compilerOptions":
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"lib": ["esnext", "esnext.asynciterable", "dom"],
"esModuleInterop": true,
"allowJs": true,
"sourceMap": true,
"strict": true,
"noEmit": true,
"baseUrl": ".",
"paths":
"~/*": ["src/*"],
"~*": ["src/*"],
"@/*": ["src/*"]
,
"types": ["@types/node", "@nuxt/types"]
,
"exclude": ["node_modules"]
我的nuxt.config.js
中有这个对象:
typescript:
typeCheck:
eslint: true,
vue: true
【问题讨论】:
尝试改成"@/*": ["./src/*"] @Aldarund 很遗憾,这并没有帮助。 请在github上创建一个最小的复制品 这里有一个修复,但它只涵盖.vue
文件,而不是.ts
文件导入:github.com/nuxt/typescript/issues/153
是的,没错,不知道你没有 :)
【参考方案1】:
我在这里找到了解决方案:https://github.com/nuxt/typescript/issues/153#issuecomment-543010838
基本上,在您的根目录中创建一个ts-shim.d.ts
,并包含以下内容:
declare module '*.vue'
import Vue from 'vue';
export default Vue
至于您的tsconfig.json
,请确保您有以下条目:
"compilerOptions":
...
"baseUrl": ".",
"paths":
"~/*": ["./*"],
"@/*": ["./*"]
这解决了.vue
导入和.ts
导入的问题。
注意!现在绝对必须在 Vue 导入的末尾包含 .vue,否则导入将失败:
import SomeComponent from '~/components/SomeComponent.vue'
【讨论】:
"现在绝对必须包含 .vue" 帮助了我,谢谢以上是关于Nuxt TypeScript 错误:nuxt:typescript 找不到模块'@/my-module'的主要内容,如果未能解决你的问题,请参考以下文章
将 nuxt 3 从 TypeScript 迁移到 JavaScript
Nuxt/TypeScript:无法访问 - TS2339:类型上不存在属性“XXX”
Nuxt / Vue 2 + Typescript – VS Code 道具自动完成
在 Vue 2 / Nuxt / Typescript / @nuxtjs-composition-api 项目中使用 VSCode Volar 扩展