如何解决使用打字稿转译器将导入内容添加到基于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 举报,一经查实,本站将立刻删除。