error during build: 10:11:22 [vite-plugin-svgr] Could not load D:/xxx/bisheng/src/frontend/src/components/bs-icons/loading/Load.svg?react (imported by src/components/bs-icons/loading/index.tsx): [BABEL] D:\xxx\bisheng\src\frontend\src\components\bs-icons\loadin g\Load.svg: Cannot find module 'globals' Require stack: - D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\scope\index.js - D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\path\index.js - D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\context.js - D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\traverse-node.js - D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\index.js - D:\xxx\bisheng\src\frontend\node_modules\@babel\core\lib\index.js - D:\xxx\bisheng\src\frontend\node_modules\@svgr\plugin-jsx\dist\index.js at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15) at Module._load (node:internal/modules/cjs/loader:920:27) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.<anonymous> (D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\scope\index.js:10:16) at Module._compile (node:internal/modules/cjs/loader:1254:14) at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) at Module.load (node:internal/modules/cjs/loader:1117:32) at Module._load (node:internal/modules/cjs/loader:958:12) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.<anonymous> (D:\xxx\bisheng\src\frontend\node_modules\@babel\traverse\lib\path\index.js:10:15) at Module._compile (node:internal/modules/cjs/loader:1254:14) at Module._extensions..js (nod
时间: 2025-04-07 08:14:54 浏览: 73
<think>好的,我现在需要解决用户在构建过程中遇到的“Cannot find module 'globals'”错误,这个问题涉及到@babel/traverse、vite-plugin-svgr以及Vite的构建流程。首先,我得理清楚这个错误的可能原因,然后一步步排查解决方案。
首先,用户提到错误出现在构建过程中,特别是在使用vite-plugin-svgr和@babel/traverse时。根据常见的模块缺失问题,这可能是因为某些依赖没有正确安装或者版本不兼容导致的。首先应该检查@babel/traverse和vite-plugin-svgr的依赖关系,看看是否有缺失的模块。
接下来,考虑到globals模块通常是babel-helpers或相关插件的一部分,可能是在安装过程中某些包没有正确安装,或者版本冲突导致globals没有被正确引入。可能的解决方案包括重新安装相关依赖,或者更新到兼容的版本。
另外,vite-plugin-svgr可能依赖于特定的Babel版本,而项目中安装的Babel相关包可能存在版本不一致的情况。例如,@babel/traverse可能需要与@babel/core保持版本一致,否则会导致模块解析错误。因此,检查并统一Babel相关依赖的版本可能有效。
还有一种可能性是node_modules目录中的缓存或损坏文件导致模块无法找到。这时候清除缓存(如删除node_modules和package-lock.json)后重新安装依赖可能会解决问题。
此外,查看用户的package.json配置,确保所有必要的依赖都被正确列在dependencies或devDependencies中,尤其是vite-plugin-svgr和相关的Babel插件是否正确安装。
最后,如果上述方法都无效,可能需要检查项目的构建配置,例如vite.config.js中是否正确引用了vite-plugin-svgr,是否有其他插件干扰了Babel的解析流程。
总结一下,解决步骤可能包括:安装缺失的globals模块,更新或重新安装相关依赖,统一Babel版本,清除缓存,检查配置文件等。需要逐一尝试这些方法,直到问题解决。</think>### 解决 `Cannot find module 'globals'` 错误的分步方案
#### 错误原因分析
该错误通常由以下原因导致:
1. **依赖缺失或版本冲突**:`vite-plugin-svgr` 或 `@babel/traverse` 的依赖链中缺少 `globals` 模块,或版本不兼容[^1]
2. **Babel 配置问题**:旧版 Babel 插件未正确解析依赖关系
3. **缓存污染**:`node_modules` 或构建缓存中存在损坏文件
---
#### 解决方案
1. **安装缺失依赖**
```bash
npm install globals --save-dev
# 或
yarn add globals -D
```
2. **更新 Babel 相关依赖**
```bash
npm update @babel/core @babel/traverse @babel/preset-env vite-plugin-svgr
# 或
yarn upgrade @babel/core @babel/traverse @babel/preset-env vite-plugin-svgr
```
3. **验证依赖版本兼容性**
确保 `package.json` 包含兼容版本:
```json
{
"devDependencies": {
"@babel/core": "^7.23.0",
"@babel/traverse": "^7.23.0",
"vite-plugin-svgr": "^4.2.0"
}
}
```
4. **清除缓存并重装依赖**
```bash
rm -rf node_modules package-lock.json
npm install
```
5. **配置 Vite 插件**
在 `vite.config.js` 中显式配置 Babel:
```javascript
import svgr from 'vite-plugin-svgr'
export default {
plugins: [
svgr({
babel: {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]]
}
})
]
}
```
---
#### 验证步骤
1. 运行开发模式检测:
```bash
npm run dev
```
2. 执行生产构建测试:
```bash
npm run build
```
---
阅读全文
相关推荐


















