Vite爬坑日記: 在使用 Vite3 + Svelte3 構(gòu)建 Web 應(yīng)用時,控制臺報錯:process is not defined。

Vite
問題原因
在 Vite 中 process.env 全局環(huán)境變量被移除了,相當(dāng)于 process.env = null,如果項目中有依賴 process.env 這個對象,并進(jìn)行了 get/set 操作時就會出現(xiàn)報錯。
解決辦法
- 在
vite.config.js配置文件中增加define: { "process.env": {} }
import { defineConfig, loadEnv } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import sveltePreprocess from "svelte-preprocess";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
svelte({
preprocess: sveltePreprocess(),
}),
],
define: {
"process.env": {}
}
})
PS: 這里涉及到 Vite3 配置 / 共享選項 中的 define 變量。官網(wǎng)地址
define
類型: Record<string, string>
定義全局常量替換方式。其中每項在開發(fā)環(huán)境下會被定義在全局,而在構(gòu)建時被靜態(tài)替換。
歡迎訪問:天問博客