Vite+React项目中process未定义报错(path-parse模块)求助
解决Vite React项目中
process is not defined(针对process.platform)的报错问题 问题分析
你遇到的报错是因为Vite默认不会在浏览器环境中注入Node.js的process全局变量,但path-parse包的代码直接引用了process.platform。之前仅定义process.env: {}的配置只处理了process.env,没有覆盖process.platform,所以会出现新的错误。
解决方案1:通过Vite define配置直接模拟process对象
修改你的vite.config.js,完整定义process对象,包含platform属性:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], define: { 'process': { // 直接使用当前Node环境的平台值,也可以手动指定如JSON.stringify('win32') platform: JSON.stringify(process.platform), env: {} } } })
这样Vite在构建时会把代码中的process.platform替换为对应的字符串值(比如"win32"或"darwin"),同时保留process.env的定义,避免报错。
解决方案2:使用Node Polyfill插件(更彻底)
如果你的项目还依赖其他Node.js全局变量,推荐使用插件自动注入所需polyfill:
- 安装插件:
npm install vite-plugin-node-polyfills --save-dev
- 修改
vite.config.js:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { nodePolyfills } from 'vite-plugin-node-polyfills' export default defineConfig({ plugins: [ react(), nodePolyfills({ // 仅polyfill process相关,按需调整 include: ['process'] }) ] })
内容的提问来源于stack exchange,提问作者Shwetha Maiya
相关产品推荐
相关产品推荐

