我有一个简单的快速服务器,我试图在Heroku上运行。一切都在本地工作正常,但当我部署到Heroku时,我收到以下错误。
/app/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js:223
return _stringify.apply($JSON, args);
^
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at Object.stringify (/app/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js:223:23)
at stringify (/app/node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js:4:26)
at compile (/app/node_modules/babel-cli/node_modules/babel-register/lib/node.js:105:42)
at loader (/app/node_modules/babel-cli/node_modules/babel-register/lib/node.js:144:14)
at Object.require.extensions.(anonymous function) [as .js] (/app/node_modules/babel-cli/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:475:10)
at Object.<anonymous> (/app/node_modules/babel-cli/lib/_babel-node.js:154:22)
在诊断时遇到很多麻烦。以下是我的package.json中的依赖项。
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-preset-stage-3": "^6.24.1",
"babel-runtime": "^6.26.0",
我的.babelrc文件:
{
"presets": ["react", "es2015", "stage-2", "stage-3"],
"plugins": [
["transform-runtime", {
"polyfill": false,
"regenerator": true
}]
],
"ignore": ["node_modules"]
}
答案 0 :(得分:0)
我遇到了一种完全相同的情况,即在本地一切正常,但在生产环境中一切正常。经过一番挖掘之后,我意识到我的生产容器运行的脚本中包含NODE_ENV=production
,这些脚本仅在我的package.json中安装dependencies
而不安装devDependencies
。
因为我在devDependencies
中指定了一些babel插件/预设,所以它们仅在本地可用,而在生产环境中不可用。这导致生产中出现“将循环结构转换为JSON”错误。
我将所有与babel相关的依赖项移至dependencies
,问题已解决。