reactjs - 为什么我在启动我的 React 应用程序时收到错误“[Error: std::bad_alloc]”?
问题描述
我为一个小型 React webapp 项目创建了一个全新的 Vagrant + VirtualBoxdebian/buster64
虚拟机(2GB,2 核)。
配置和安装依赖项工作正常,但是当通过(脚本简写)yarn
启动应用程序的客户端时,我收到以下错误:yarn start:client
parcel index.html --port 3000
[Error: std::bad_alloc]
创建一个新的虚拟机并调整内存和核心使用并没有解决问题。VirtualBox 没有显示任何问题,并且盒子内的内存使用率非常低。在尝试启动应用程序期间通过观察内存波动free -c 10
显示内存在抛出错误时突然下降之前被分配。
没有提供其他错误详细信息。
包.json:
{
"name": "",
"version": "0.1.0",
"description": "",
"scripts": {
"start": "node server/server.js",
"start:client": "parcel index.html --port 3000",
"start:server": "nodemon ./server/server --watch server/ --port 3001",
"build": "parcel build index.html"
},
"license": "MIT",
"engine": "14.15.3",
"dependencies": {
"axios": "^0.21.1",
"axios-retry": "^3.1.9",
"cache-all": "^2.1.1",
"cors": "^2.8.5",
"dayjs": "^1.10.1",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"gps-distance": "^0.0.4",
"less": "^4.1.1",
"lodash": "^4.17.20",
"milligram": "^1.4.1",
"nodemon": "^2.0.6",
"ramda": "^0.27.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-ga": "^3.3.0",
"react-modal": "^3.12.1",
"react-spinners": "^0.10.4",
"rsuite-table": "^3.14.2"
},
"devDependencies": {
"@parcel/transformer-css": "^2.0.0-alpha.3",
"@parcel/transformer-postcss": "^2.0.0-alpha.3",
"babel-preset-nano-react-app": "^0.1.0",
"parcel": "next",
"sass": "^1.32.4"
},
"babel": {
"presets": [
"nano-react-app"
],
"plugins": [
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
],
[
"@babel/plugin-transform-react-jsx",
{
"pragmaFrag": "React.Fragment"
}
]
]
}
}
解决方案
经过相当多的反复试验,我将问题追溯到 Parcel 包的缓存。
首先,我尝试自行启动应用程序的服务器 (API) 部分 ( yarn start:server
),它启动时没有问题。
其次,我尝试在不指定端口号 ( node_modules/parcel/lib/bin.js index.html
) 的情况下启动应用程序的客户端。该应用程序正确启动且没有问题。
第三,我再次正常启动客户端(yarn start:client
),bad_alloc
错误再次出现。
--no-cache
第四,我用标志启动客户端。没有错误。
最后(TL;DR),我删除了缓存目录(rm -fr .parcel-cache
),然后像往常一样重新启动客户端。该应用程序构建正确且没有错误。
到目前为止,我已经多次重新启动客户端而没有问题。目前还不清楚 Parcel 的缓存是什么导致了这个问题。希望这可以节省某人的桌子翻转。
推荐阅读
- git - 处理超级项目的长期分支(如 2 周)集成?
- html - 如何在 HTML xml 模板中填充表格
- postgresql - 无法将 Odoo pod 与私有 GKE 中的 postgres pod 连接起来
- python - OpenCV cv2.imwrite() 不能循环工作以将图像保存在文件夹中
- snowflake-cloud-data-platform - 是否可以在来自不同公司的多个团队之间在一个雪花帐户中提供双向数据?
- java - Eureka Client 以 204 状态连接,在服务器页面上可见,但不可发现
- reactjs - 上下文 API 不会在 Next.JS 上更新
- python - 我正在编写一个家庭作业程序,但我无法让它工作
- postgresql - 将 Informix 函数转换为 PostgreSQL 函数
- canvas - Canvas LMS 找不到任何课程文件