Open1

SolidStartで、.envを取得する

yunayuna

結論

app.configでenv.config.tsを読み込み、viteのコンフィグ中の define: にセットすればOK。

env.ts
(省略)
この中で、条件や環境変数によって、本番とテスト用で取得する変数の切り分けなどを行います。
//例
export const env = {'__APP_CONFIG__': 'https://sample.com'};
app.config.ts
const loadedEnvModule = await import('./env');

...

vite: {
    define: {
      '__APP_CONFIG__': JSON.stringify(loadedEnvData.env)
    },
}
global.d.ts
// define で注入されるグローバル変数の型を宣言
declare global {
  const __APP_CONFIG__: AppConfig & Env; // define は文字列として置換するため string 型
}

以上の設定で、利用できるようになります。

sample.ts
const baseUrl = __APP_CONFIG__.BASE_URL;