我有一个使用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 -->