使用打字稿转译器将导入内容添加到基于Web的摩纳哥IDE

问题描述

尊敬的互联网编码人员,

我正在为打字稿创建基于Web的IDE,它不需要所有功能,因为我仅使用它以灵活的方式转换数据。但是,它确实需要导入一些打字稿文件,并且还必须在浏览器中运行所有打字稿文件(也可以在C#中使用jint进行操作,但请不要超越自己)。

当前,我有一个基本的monaco编辑器设置,可以编译代码并使用eval在浏览器中运行它。但是,正如我说过的,我需要在IDE内导入一些文件,这些文件是我已经创建的一组特定文件,可以通过访问Web URL在浏览器中找到它们。

我无法向IDE添加任何导入,更不用说运行导入了。 目前,该模块向摩纳哥的添加如下:

monaco.languages.typescript.typescriptDefaults.addExtraLib(text,"file:///main.js");

其中的文本是我使用fetch获取的代码的文本表示形式(如果我必须做一堆文件,这会很烦人,但如果有必要,我当然可以忍受)。

代码的转译如下:

const tsCode = editor.getValue();
const jsCode = window.ts.transpile(tsCode);
console.log(jsCode);

console.log("Running Code...");
const evaluated = eval(jsCode);
console.log("Ran Code,output was: ");
console.log(evaluated);
return evaluated;

使用https://unpkg.com/browse/typescript@4.0.2/lib/typescriptServices.js标签从<script>导入ts。

编辑器本身的代码是

editor = monaco.editor.create(
    document.getElementById('IDEContainer'),{
        value: [
            'function run() : void {','   console.log("Hello world!");','}','run();'
        ].join('\n'),language: 'typescript',theme: 'vs'/*,model: monaco.editor.createModel(text,"javascript",new monaco.Uri("main.js"))*/
    }
);

我还尝试创建一个模型,由于某种原因该模型只是用该文本替换了内容? 我猜想我需要为模块解析添加requireJS。但是,如果两次运行我的代码,则会出现错误,提示我多次运行代码时每个脚本只能进行一次匿名定义调用。

谢谢您的帮助!

P.S。不必担心运行代码的安全性,我们确保未授权的人无法上传任何文件。并且正在寻找一种阻止互联网并推动访问jint的方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...