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:在节点模板中使用终端的主要内容,如果未能解决你的问题,请参考以下文章

CodeSandbox推出容器,进化为WebIDE

在 Amazon ApiGateway 中为 URI 指定的 HTTP 终端节点无效

有没有办法在 codesandbox.io 中使用 npm 脚本?

如何在 CodeSandbox 中使用 Scss 文件?

为啥我的样式在codesandbox中没有生效?

磁盘工作原理文件系统及i节点块存储文件存储对象存储DASNAS还有SAN