斯维尔特找不到 Vite 变量的名称



我有一个使用Vite的Svelte应用程序,运行时需要当前的应用程序版本。

vite.config.ts中,我添加了一个全局变量

define: {
APP_VERSION: JSON.stringify(process.env.npm_package_version),
},

在我的组件中,我使用这样的变量

<script lang="ts">
const appVersion = APP_VERSION;
function doSomething() {
console.log(appVersion);
}
</script>

它工作,但当运行npm run check时,我得到错误

错误:找不到名称"APP_VERSION"。你是说"appVersion"吗?(ts)

如何修复此错误?

您需要一个声明,例如添加一个内容为的文件vite.d.ts

declare const APP_VERSION: string;

(请注意,如果将导入添加到文件中,该文件将成为一个模块,并且声明将不再被视为全局声明。然后,您必须将声明封装在declare global { ... }块中。)

如果您直接在Svelte文件的模板部分使用变量,您当前仍会收到一条警告,可以使用将其静音

<!-- svelte-ignore missing-declaration -->

最新更新