reactjs - 为什么我在启动 React 应用程序时收到错误 "[Error: std::bad_alloc]"?

标签 reactjs parceljs

我为一个小型 React webapp 项目创建了一个全新的 Vagrant + VirtualBox debian/buster64 虚拟机(2GB,2 核)。

使用 yarn 配置和安装依赖项工作正常,但是当通过 yarn start:client 启动应用程序的客户端时(parcel index.client 的脚本简写)。 html --port 3000), 我收到以下错误:

[错误:std::bad_alloc]

创建一个新的 VM 并调整内存和核心使用情况并没有解决问题。 VirtualBox 没有显示任何问题的迹象,并且盒子内的内存使用率非常低。在尝试启动应用程序期间通过 free -c 10 观察内存波动显示在抛出错误时内存突然下降之前正在分配。

没有提供额外的错误详细信息。

Package.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 的缓存是什么导致了这个问题。希望这可以避免有人翻 table 。

关于reactjs - 为什么我在启动 React 应用程序时收到错误 "[Error: std::bad_alloc]"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66149645/

相关文章:

javascript - 映射函数循环并给出错误 - React

javascript - 为什么我的获取请求会在使用 React Toast 通知的 ReactJs 中导致无限错误循环

javascript - 如何将配置值作为字符串而不是对象对象获取到 href 中

netlify - 使用 Parcel.js 部署到 Netlify 失败

javascript - 未捕获的 TypeError : (0 , _module) 不是一个函数

reactjs - 为什么我的环境变量使用 parcel 和 react 返回 undefined

javascript - Material-UI 中的 Mask Textfield 组件

javascript - 映射 JSON 对象 - ReactJS

google-chrome-extension - 我可以在 chrome 扩展中启用源映射吗?

node.js - 有没有办法打包使用 express 和 ejs 的 nodejs 应用程序?