You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ES6 import导入obs-websocket-js时遇Unexpected token '*'错误求助

修复OBS扩展中obs-websocket-js的ES6导入问题

方案1:用UMD兼容版本直接调用

Kruiz Control加载的网页通常处于非模块环境,ES6 import容易出问题,改用UMD版本的库:

  1. 在HTML里先引入UMD脚本(本地文件或直接用打包好的版本)
<script src="node_modules/obs-websocket-js/dist/obs-websocket.umd.js"></script>
  1. 脚本里直接实例化,注意await必须放在async函数内
async function connectOBS() {
  const obs = new OBSWebSocket();
  try {
    await obs.connect('IP_REMOVED', 'PASSWORD_REMOVED');
    obs.on('CurrentProgramSceneChanged', scene => {
      console.log(scene);
    });
  } catch (err) {
    console.error('OBS连接失败:', err);
  }
}
connectOBS();

方案2:强制启用模块模式并修正导入路径

如果一定要用ES6 import,做以下调整:

  1. HTML中的脚本标签必须声明为模块类型
<script type="module" src="你的脚本文件路径.js"></script>
  1. 导入时指定正确的ES模块入口文件
import OBSWebSocket from './node_modules/obs-websocket-js/dist/obs-websocket.esm.js';

async function initOBS() {
  const obs = new OBSWebSocket();
  try {
    await obs.connect('IP_REMOVED', 'PASSWORD_REMOVED');
    obs.on('CurrentProgramSceneChanged', scene => {
      console.log(scene);
    });
  } catch (err) {
    console.error(err);
  }
}
initOBS();

方案3:原生WebSocket直接对接

如果obs-websocket-js的导入问题始终无法解决,绕开库直接用原生WebSocket实现场景切换监听:

const ws = new WebSocket('ws://IP_REMOVED:4455');

ws.onopen = () => {
  // 发送认证请求
  ws.send(JSON.stringify({
    op: 1,
    d: {
      rpcVersion: 1,
      authentication: 'PASSWORD_REMOVED'
    }
  }));
  // 订阅场景切换事件
  ws.send(JSON.stringify({
    op: 5,
    d: {
      eventSubscriptions: 1 << 2
    }
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.op === 0 && data.t === 'CurrentProgramSceneChanged') {
    console.log(data.d);
  }
};

内容的提问来源于stack exchange,提问作者SyntaxicalEcho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:42:56