为什么我无法在Glitch.io中保存在框架检查器中所做的更改

时间:2019-12-27 19:48:19

标签: aframe webvr glitch-framework

我在Glitch上混合了一个框架WebVR项目。 当我打开可视a框架检查器并进行更改时,我无法保存更改。按下“保存”按钮会出现错误:

  

aframe-watcher没有运行。此功能需要配套服务   在本地运行。 npm install aframe-watcher将更改保存回   文件。要了解更多信息,请访问supermedium.com/aframe-watcher

我正在Glitch上运行它,所以我在本地没有任何东西。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

检查器无法在服务器端修改文件。使用aframe watcher时,检查员可以在本地计算机上的场景中编辑并保存更改。

答案 1 :(得分:0)

很抱歉,您的回答很晚。我无法让Aframe-Watcher在故障时运行它。但是使用定制的aframe-inspector组件,这是可能的。

例如查看https://aframe-glitch-server-sync.glitch.me/和项目代码中的https://glitch.com/~aframe-glitch-server-sync

您可以在public/aframe-inspector.js的第21742行中看到整个场景已序列化并发送到服务器。

var scene = Toolbar._entity.getEntityClipboardRepresentation(AFRAME.scenes[0]);

var obj = {};
obj[location.pathname] = scene;
xhr.send(JSON.stringify(obj));

getEntityClipboardRepresentation函数在行21846处提供给工具栏。我知道,这是一个丑陋的骇客,但确实有效。

Toolbar._entity = __webpack_require__(14);

server.js中,服务器端处理如下所示。

app.post('/savePlain', (req, res) => {
    var before = '<html><head><script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script></head><body>';
    var after = '</body></html>';
    for (const [filepath, content] of Object.entries(req.body)) {
        fs.writeFileSync('./public' + filepath, before + content + after);
    }
    res.sendStatus(200);
});

我希望这个示例可以为以后的实验提供一个良好的开端。 :)