CodeSandbox:在节点模板中使用终端
Posted
技术标签:
【中文标题】CodeSandbox:在节点模板中使用终端【英文标题】:CodeSandbox: Using terminal in node template 【发布时间】:2021-02-25 21:36:48 【问题描述】:我正在尝试使用节点模板创建沙箱,但在访问终端时遇到了问题。我有一个沙箱here,我使用他们的define API 上传了它,它应该使用节点模板(在我的sandbox.config.json
中定义)并具有定义的启动脚本。它显示 504 并且不允许我访问终端。我做错了什么?
【问题讨论】:
【参考方案1】:如果这对任何人都有帮助:要为现有项目启用容器,您需要在创建沙箱之前创建一个包含以下内容的 sandbox.config.json 文件:
"template": "node"
我不确定是否有办法在沙盒创建后更改它。
参考:https://github.com/codesandbox/codesandbox-client/issues/1608
【讨论】:
【参考方案2】:经过更多研究:我现在看到沙箱在节点环境中运行,但没有终端 - 但将鼠标悬停在信息/控制台窗口右上角的“+”上会给出工具提示“Fork to add a Terminal”。我这样做了,终端变得可用。我认为这是某种形式的所有权问题 - 我无法在 your 沙箱中打开终端,但我可以在 my 分叉沙箱中打开终端。
我们可以得出结论,define API 创建了一个 public 模板/沙箱 - 但终端仅在 private 沙箱中可用。要使用终端,您必须在创建沙箱后对其进行分叉。
(感谢@codesandbox 包含导致结论的工具提示)
【讨论】:
【参考方案3】:这不是容器环境,它是访问终端所必需的。容器和代码框存在已知问题;具体来说,您不能将一种沙箱类型转换为另一种,有时从其他人的 github 分叉也不会创建为容器。
最好从容器化模板开始。
【讨论】:
你知道如何指定容器环境吗?在我的sandbox.config.json
中,我将模板设置为node
;我应该在那里使用其他设置吗?
您是否在开始时选择节点模板,或者编辑 sandbox.config.json 以将其更改为“节点”?据我了解,你不能改变环境;必须在开始时设置它才能使用容器化环境。我很难学到这一点 - 导入了一堆代码,然后必须创建 另一个 容器化沙箱,并使用 external git 客户端将现有代码合并到容器化沙箱中。
嗯。在更多的讨论中,我现在看到沙箱在节点环境中运行,但没有终端 - 但是将鼠标悬停在信息/控制台窗口右上角的“+”上会给出一个工具提示“Fork to add a Terminal”。我这样做了,终端变得可用。我怀疑这是某种形式的所有权问题 - 我 无法在 your 沙箱中打开终端,但我 可以 在我的 forked 沙盒。我怀疑您使用定义 API 的方式创建了一个 模板,或者其他方式会影响所有权。
好的,我想终端不公开是有道理的,尽管我希望它会运行我的启动脚本并且看起来不会出错:/ @LeadDreamer 如果你想更新你的答案(或重新回答)说终端是私有的,而定义 API 是公共的,所以这种方法行不通,我会接受它作为答案?以上是关于CodeSandbox:在节点模板中使用终端的主要内容,如果未能解决你的问题,请参考以下文章
在 Amazon ApiGateway 中为 URI 指定的 HTTP 终端节点无效