如何配置Opencode+WSL+playwright-cli使其正常运行?
解决Opencode与WSL中playwright-cli的识别问题
问题根源
Systemd启动的服务默认不会加载用户~/.bashrc中的环境变量,你配置的Node.js路径仅在交互式登录shell(比如WSL终端)中生效。同时Opencode调用WSL服务时可能使用非交互式shell,同样无法读取~/.bashrc的配置,导致找不到npx和playwright命令。
解决方案
1. 将Node.js路径添加到系统级环境变量
- 在WSL终端中执行以下命令,获取Node.js和playwright的实际路径:
通常Node.js的which node which playwrightbin目录类似/home/你的用户名/.nvm/versions/node/vxx.x.x/bin或/usr/local/bin。 - 编辑系统级环境变量配置文件
/etc/environment:
在sudo nano /etc/environmentPATH变量末尾追加Node.js的bin路径,示例:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/xxx/.nvm/versions/node/v20.10.0/bin" - 保存退出后,重启WSL或执行
source /etc/environment使配置生效。
2. 修改Systemd Unit文件,明确指定环境变量
- 找到Opencode服务的Systemd Unit文件(通常位于
/etc/systemd/system/或~/.config/systemd/user/),编辑该文件:sudo nano /etc/systemd/system/opencode-server.service - 在
[Service]区块中添加Environment配置,指定包含Node.js路径的完整PATH:[Service] Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/xxx/.nvm/versions/node/v20.10.0/bin" # 其他原有配置... - 重新加载Systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart opencode-server
3. 直接使用playwright的绝对路径调用
如果上述方法仍有问题,可以在Opencode的配置中直接使用playwright的绝对路径(即which playwright得到的结果),比如/home/xxx/.nvm/versions/node/v20.10.0/bin/playwright,跳过环境变量依赖。
验证测试
在WSL终端中执行非交互式shell测试,确认环境变量生效:
bash -c "playwright --version"
如果能正常输出版本号,说明配置已生效,此时Opencode应该可以识别playwright-cli。
内容的提问来源于stack exchange,提问作者voipp
相关产品推荐
相关产品推荐

