根文件夹中的env.d.ts文件中,用三斜线导入node_module中的类型声明文件,在main.ts中要使用import.meta.env,提示ImportMetaEnv不存在,原因是什么?

1 已经在env.d.ts文件中写了类型声明

根文件夹中的env.d.ts文件中,用三斜线导入node_module中的类型声明文件,在main.ts中要使用import.meta.env,提示ImportMetaEnv不存在,原因是什么?_第1张图片

2 但在main.ts中,vite特有的用来导出环境变量的对象import.meta.env提示ImportMetaEnv不存在,为什么会这样

根文件夹中的env.d.ts文件中,用三斜线导入node_module中的类型声明文件,在main.ts中要使用import.meta.env,提示ImportMetaEnv不存在,原因是什么?_第2张图片

 3 原因是,在ts.config.json文件中,include字段,没有包含根文件夹中第1层的env.d.ts文件,这样就不会去根文件夹中去找env.d.ts文件,所以提示不存在

4 解决方法:

方法1

在ts.config.json文件中,include字段的数组中添加 "*.ts"  这表示让ts找到根文件夹中的env.d.ts文件,这样import.meta.env就不会提示不存在了。

根文件夹中的env.d.ts文件中,用三斜线导入node_module中的类型声明文件,在main.ts中要使用import.meta.env,提示ImportMetaEnv不存在,原因是什么?_第3张图片

方法2

在ts.config.ts文件中,types字段的数组中添加 “vite/client” ,这表示ts包含了vite/client的类型声明文件,所以在main.ts中import.meta.env不会提示不存在。

根文件夹中的env.d.ts文件中,用三斜线导入node_module中的类型声明文件,在main.ts中要使用import.meta.env,提示ImportMetaEnv不存在,原因是什么?_第4张图片

注意:最终的解决方案是

因为我们在根文件夹中的.env.development文件中自己创建了VITE_HOME环境变量,我们希望在main.ts的import.meta.env中有自己创建的VITE_HOME的智能提示。

此时,只有将include字段的数组中添加 “ *.ts ” 才会有智能提示,上面的方法2是不会用智能提示的,只有原生提供的5个。

vue3引入.vue文件以及.ts文件时提示找不到模块_"找不到模块“vue-router”。你的意思是要将 \"moduleresolution\" 选项_旋律的伏线的博客-CSDN博客

你可能感兴趣的:(前端)