首先,一定要明确,如果新增或者改了一个process.env值,必须要重新构建才能取值,否则会报错Uncaught ReferenceError: process is not defined 但是这个没关系,重启就行了
其次,rsbuild的默认export,必须以PUBLIC_开头,就像next的必须以什么NEXT__xxxx开头一样
再次,里面获取不到就要在rsbuild.config.ts里加,在
source: {
entry: await getEntries(),
define: {
'process.env.PUBLIC_1111': JSON.stringify(
process.env.PUBLIC_1111 ?? '',
),
最后,可以额外import,虽然不知道有用没用。(应该是没用吧,算是自定义的)
import { defineConfig, loadEnv } from '@rsbuild/core';
const { publicVars } = loadEnv({ prefixes: ['PUBLIC_'] });
console.log(publicVars, 'publicVars');
export default defineConfig({
source: {
entry: await getEntries(),
define: {
...publicVars,
最关键的来了

所以env不能放在env/local下面,读取不到,完完全全放在根目录下才能读到,结束,坑。
更新:以上几步其实都不需要,都是验证的,最关键是最后一步,只要环境对,加上有PUBLIC_前缀就ok。只是记录下