reactjs 如何在使用vite时添加process.env?

ddrv8njm  于 2023-04-05  发布在  React
关注(0)|答案(1)|浏览(425)

我用vite构建了一个react项目。这个项目使用了@mui,在它里面,他们有-

if (typeof process !== 'undefined' && process.env.GRID_EXPERIMENTAL_ENABLED !== undefined && localStorageAvailable() && window.localStorage.getItem('GRID_EXPERIMENTAL_ENABLED')) {
  experimentalEnabled = window.localStorage.getItem('GRID_EXPERIMENTAL_ENABLED') === 'true';
} else if (typeof process !== 'undefined') {
  experimentalEnabled = process.env.GRID_EXPERIMENTAL_ENABLED === 'true';
}

当他们尝试访问process.env.GRID_EXPERIMENTAL_ENABLED时,它失败了,说它无法获得未定义的GRID_EXPERIMENTAL_ENABLED。
我记录了process,它是一个空对象。
我尝试了通过vite.config.ts文件生成进程env的不同方法,但都不起作用。

预期结果-第三方库应该能够访问process.env

ct2axkht

ct2axkht1#

Vite define配置可能会在捆绑时替换js资产。

export default defineConfig(({ command, mode }) => {
  return {
    define: {
      "typeof process !== 'undefined'": "true",
    }
  ...

将检查是否定义了process的第三方代码“if condition”替换为true
所以你可以做进一步的修改。请记住,这个定义在生产包中是作为替换工作的,而不是在开发模式下。
https://v3.vitejs.dev/config/shared-options.html#define

相关问题