node.js - 反应部署错误 = 断言 `args[1]->IsString()'
问题描述
我正在尝试部署一个 React 应用程序。它工作正常,所有测试都通过了。但它会被 CI 捕获。
这是错误:
Deploying application
node[5878]: ../src/node_contextify.cc:628:static void node::contextify::ContextifyScript::New(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[1]->IsString()' failed.
1: node::Abort() [node]
2: 0x876c55 [node]
3: node::contextify::ContextifyScript::New(v8::FunctionCallbackInfo<v8::Value> const&) [node]
4: v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) [node]
5: 0xacd2df [node]
6: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [node]
7: 0xf05d4b8427d
Script failed with status
failed to deploy
我认为这与 Node 版本有关......但我不太确定。帮助!
这似乎是同一个问题,但老实说,我并没有真正从中得到任何答案:https ://github.com/nodejs/node/issues/20285
解决方案
基于 Github 线程,我假设你在开发工作流程中使用 Gulp.js,所以基于它;
节点 10 已将其 contextify 脚本更改为更严格,因此使用它的现有 Gulp 3.9.x 版本也会在断言失败时引发错误。
所以解决方案是
1) 安装 Gulp 4 并升级您的 gulpfile.js 有关更改的更多信息,请参阅这篇关于升级您的 GULP 以使用节点 10 运行的文章
或者干脆
2) 将你的 node.js 版本降级到 LTS 8.x,直到 Gulp 4 作为默认的 npm 包发布。
推荐阅读
- css - 如何调整内容div的高度?
- python - 部署处理写入和更新事件的云功能
- javascript - Uncaught (in promise) TypeError: filter is not a function
- swift - Swift AutoLayout-锚未以编程方式应用
- reactjs - 创建 React App 测试覆盖率报告不涵盖 /src 中的所有文件
- c# - 如何在mvc orderBy中使用条件语句将0值移到最后
- excel - Excel PowerQuery 查询两次以在刷新时下载 excel 表 2 次
- c# - 当 ShowInTaskBar 设置为 false 时,最小化会在桌面上创建一个可见栏
- python - Sagemaker:ImportError:运行训练脚本时没有名为“pandas”的模块
- java - RestController 的抽象类自定义反序列化