javascript - 节点服务器多次工作后停止工作
问题描述
我有明确的设置来为我正在处理的 React 项目进行服务器端渲染,它似乎只是在此进程之后的一定时间后异常停止工作:
1)服务器上线,成功返回页面
2)我稍微调整一下服务器文件,重新启动。
3)服务器继续工作
4)调整更多,重新启动
5) 服务器停止工作,即使恢复到步骤 1 中使用的文件
6) 附加错误继续显示在以后的所有尝试中,直到删除 node_modules 并重新加载所有依赖项
因此,虽然我目前有一个解决方法,但每次出现这种情况时擦除整个依赖集远非有效,而且我担心在部署应用程序时这种行为是否会出现。这是怎么回事,我该如何预防?
我已经确保节点没有在后台运行剩余的幽灵进程或任何东西,并且完整的运行日志与错误消息所说的没有太大区别。不确定这里要考虑的任何其他角度。
E:\JsProjects\ssrproj> npm run serve
> ssrproj@0.1.0 serve E:\JsProjects\ssrproj
> cross-env NODE_ENV=production node ./server/index.js
E:\JsProjects\ssrproj\node_modules\convert-source-map\index.js:61
return SafeBuffer.Buffer.from(json, 'utf8').toString('base64');
^
TypeError: Cannot read property 'from' of undefined
at Converter.toBase64 (E:\JsProjects\ssrproj\node_modules\convert-source-map\index.js:61:28)
at Converter.toComment (E:\JsProjects\ssrproj\node_modules\convert-source-map\index.js:65:21)
at generateCode (E:\JsProjects\ssrproj\node_modules\@babel\core\lib\transformation\file\generate.js:78:76)
at runSync (E:\JsProjects\ssrproj\node_modules\@babel\core\lib\transformation\index.js:50:51)
at transformSync (E:\JsProjects\ssrproj\node_modules\@babel\core\lib\transform.js:43:38)
at Object.transform (E:\JsProjects\ssrproj\node_modules\@babel\core\lib\transform.js:22:38)
at compile (E:\JsProjects\ssrproj\node_modules\@babel\register\lib\node.js:73:20)
at compileHook (E:\JsProjects\ssrproj\node_modules\@babel\register\lib\node.js:102:12)
at Module._compile (E:\JsProjects\ssrproj\node_modules\pirates\lib\index.js:93:29)
at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ssrproj@0.1.0 serve: `cross-env NODE_ENV=production node ./server/index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ssrproj@0.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\user\AppData\Roaming\npm-cache\_logs\2019-04-13T15_17_36_311Z-debug.log
解决方案
看起来此错误可能是由于安全缓冲区项目中的竞争条件造成的,这似乎是 convert-source-map 项目的依赖项。其他人在使用 safe-buffer 时也遇到过类似的错误。以下是我的建议。尝试:
- 确保您拥有 convert-source-map 和所有相关项目的最新版本
- 避免在生产中使用 convert-source-map。
推荐阅读
- java - 如何将获取 x-csrf-token 的能力添加到此脚本?
- azure - Azure Terraform 策略错误“缺少订阅 - 请求没有订阅或有效的租户级资源提供程序”
- mongodb - 如何在 MongoDB 中存储用户特定的数据
- amazon-web-services - 使用 EC2 Instance Connect 的连接失败(基于浏览器的 SSH 连接)
- javascript - 播放时有奇怪行为的音频
- server - 我需要将媒体流从服务器转发到服务器吗?SFU和MCU相互连接的架构
- java - 读取多个文件夹文件java
- android - app:mergeExtDexRelease FAILED 错误,React Native
- azure-devops - 无法从 Yaml Azure Devops 管道运行脚本
- java - Retrofit2 排队 onResponse 和 onFailure 未执行