gpt4 book ai didi

c# - Clearscript Javascript 'require' 功能

转载 作者:行者123 更新时间:2023-12-02 19:16:07 24 4
gpt4 key购买 nike

我正在尝试为 Twilio 可编程聊天工具编写 C# 包装器。提供的库用于 JS 客户端。我认为使用像 ClearScript (V8) 这样的工具可以让我根据需要包装 js。

网站上的示例代码是

const Chat = require('twilio-chat');

// Make a secure request to your backend to retrieve an access token.
// Use an authentication mechanism to prevent token exposure to 3rd parties.

const accessToken = '<your accessToken>';

Chat.Client.create(accessToken)
.then(client => {
// Use Programmable Chat client
});

所以在我初始化之后

using (var engine = new V8ScriptEngine())
{
engine.Execute(@"
const Chat = require('twilio-chat.js');

const token = 'my token';

Chat.Client.create(token).then(client=>{
});
");
}

'require' 行上的程序错误 require is not defined。我读过 require 只是返回模块导出,所以我替换了 require('...与

engine.Execute(@"
const Chat = ('twilio-chat.js').module.exports;
...

但是无法读取未定义属性“导出”的错误

我从https://media.twiliocdn.com/sdk/js/chat/releases/4.0.0/twilio-chat.js得到了js文件

我怎样才能解决这个问题,或者有更好的方法。我感谢任何和所有的见解。

谢谢

最佳答案

我对 Twilio 一无所知,但这里介绍了如何启用 ClearScript 的 CommonJS 模块支持。此示例从 Web 加载脚本,但您可以将其限制在本地文件系统或提供自定义加载器:

engine.AddHostType(typeof(Console));
engine.DocumentSettings.AccessFlags = DocumentAccessFlags.EnableWebLoading;
engine.DocumentSettings.SearchPath = "https://media.twiliocdn.com/sdk/js/chat/releases/4.0.0/";
engine.Execute(new DocumentInfo() { Category = ModuleCategory.CommonJS }, @"
const Chat = require('twilio-chat');
const token = 'my token';
Chat.Client.create(token).then(
client => Console.WriteLine(client.toString()),
error => Console.WriteLine(error.toString())
);
");

这成功加载了 Twilio 脚本,该脚本似乎依赖于其他脚本和资源,这些脚本和资源不属于 ClearScript/V8 提供的裸标准 JavaScript 环境。要使其正常工作,您必须增加搜索路径并可能手动公开其他资源。如图所示,此代码打印出 ReferenceError: setTimeout is not defined

关于c# - Clearscript Javascript 'require' 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63696472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com