在Snap! JS环境中解决require()未定义问题(无HTML/package.json)
解决Snap!中使用DeepAI文本生成API时的"ReferenceError: require is not defined"错误
问题原因
require()是Node.js专属的模块加载语法,而Snap!的JavaScript运行环境基于浏览器,不支持该语法,因此直接使用原代码会报错。
解决方案
改用DeepAI提供的浏览器端脚本,通过动态加载的方式引入库,无需依赖require()或package.json。修改后的代码如下:
// 动态加载DeepAI浏览器端脚本 if (!window.deepai) { const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/deepai/1.0.21/deepai.min.js'; document.head.appendChild(script); // 等待脚本加载完成后再执行后续逻辑 await new Promise(resolve => script.onload = resolve); } // 设置API密钥 deepai.setApiKey('quickstart-QUdJIGlzIGNvbWluZy4uLi4K'); // 调用文本生成API const resp = await deepai.callStandardApi("text-generator", { text: "YOUR_TEXT_HERE", }); console.log(resp);
注意事项
- 测试用的
quickstart-QUdJIGlzIGNvbWluZy4uLi4K密钥仅用于快速验证,正式使用请替换为自己的DeepAI密钥。 - 代码中使用
await确保脚本加载完成后再调用API,避免因库未加载导致的错误。
内容的提问来源于stack exchange,提问作者OrrinPants
相关产品推荐
相关产品推荐

