首页 > 解决方案 > 如何让 Vite 在构建期间不将 process.env 转换为特定值?

问题描述

背景

我使用 Vite 将我的项目从 esModule 构建到 CommonJS,我将在 NodeJS 中运行结果。

困扰我的一个问题是process.env已经转换为特定值,但我只想process.env保持原样,因为我将在 NodeJS 运行结果时传入具体值。

虽然是用Vite搭建的,但我觉得这应该是Rollup的问题。

更新:应该是 vite 的问题。

细节

我的代码看起来像这样:

useVariable(process.env.ROOT)

构建的结果是这样的:

useVariable({}.ROOT)

我期望的构建结果:

useVariable(process.env.ROOT) // Keep it as it is

这是我的配置:

export default defineConfig({
  build: {
    outDir: '../../dist',
    lib: {
      entry: path.resolve(__dirname, './index.ts'),
      name: 'main',
      formats: ['cjs']
    },
    rollupOptions: {
      plugins: [
        autoExternal({ packagePath: './package.json' })
      ]
    }
  }
})

标签: node.jses6-modulescommonjsrollupvite

解决方案


推荐阅读