chii启动服务器报错

情况

chii是一个远程调试工具。
通常用于移动端调试,毕竟移动端浏览器没有调试功能。
https://github.com/liriliri/chii

PS D:\A_code\html\solidjs\my-nav> chii start -p 3000
C:\Users\32956\.bun\install\global\node_modules\path-to-regexp\dist\index.js:113
        throw new TypeError("Unexpected ".concat(nextType, " at ").concat(index, ", expected ").concat(type));
              ^

TypeError: Unexpected MODIFIER at 11, expected END
    at mustConsume (C:\Users\32956\.bun\install\global\node_modules\path-to-regexp\dist\index.js:113:15)
    at parse (C:\Users\32956\.bun\install\global\node_modules\path-to-regexp\dist\index.js:189:9)
    at stringToRegexp (C:\Users\32956\.bun\install\global\node_modules\path-to-regexp\dist\index.js:346:27)
    at pathToRegexp (C:\Users\32956\.bun\install\global\node_modules\path-to-regexp\dist\index.js:422:12)
    at new Layer (C:\Users\32956\.bun\install\global\node_modules\koa-router\lib\layer.js:44:19)
    at Router.register (C:\Users\32956\.bun\install\global\node_modules\koa-router\lib\router.js:471:19)
    at Router.<computed> [as get] (C:\Users\32956\.bun\install\global\node_modules\koa-router\lib\router.js:814:10)
    at createStatic (C:\Users\32956\.bun\install\global\node_modules\chii\server\middle\router.js:67:12)
    at module.exports (C:\Users\32956\.bun\install\global\node_modules\chii\server\middle\router.js:84:3)
    at Object.start (C:\Users\32956\.bun\install\global\node_modules\chii\server\index.js:30:27)

Node.js v22.14.0

image

解决

https://github.com/liriliri/chii/pull/96
有人提了这个问题,然后有人pr修复了,但是pr还没合并。
于是乎手动修改。
image
找到全局安装的chii路径(报错里面有给出)
比如windows pnpm全局安装的chii的router.js路径如下

C:\Users\32956\AppData\Local\pnpm\global\5\.pnpm\chii@1.15.4\node_modules\chii\server\middle

用编辑器打开,找到第67行修改即可。

使用

这个全局安装只是给你的设备安装了一个CLI,用于启动本地服务器。
当你启动服务器的时候,你的网页和服务器之间一点关系都没有。
于是乎要让他们之间有联系,将服务器的脚本嵌入到网页中。
比如下面这样。

<script src="https://frp-bus.com:11977/target.js"></script>

流程大致是:
服务器启动(chii start -p 3030),后续称为chii服务器
代码中嵌入js脚本,启动前端网页服务器(npm run dev),端口比方说3000
二者之间是独立的,先启动哪个都一样。
然后用户访问前端页面。前端页面读取到js脚本向chii服务器发起请求,于是乎可以交换数据,远程调试的目的就达到了。

结果

嵌入脚本莫名其妙访问baidu.com,触发跨域限制。
image
调试页面(端口3030)一堆方块。
image
最重要的是选择元素这个功能废了。(因为页面和调试页面不在同一块)

page-spy

那么货拉拉的page-spy如何呢?
我感觉还是不太行,配置个端口都需要使用配置文件。而且部分浏览器不知道为啥就是加载不出来。(后面得知是安全策略的问题,sakuraFrp的自动https没通过浏览器的安全测试,无法加载脚本)
而且也是没有选择元素的功能。(可以使用pc上浏览器的开发者工具查看样式,但是改了之后不会image
页面不会自动刷新,页面不会跟着设备变。
不过用户可以看到自己的设备ID,用处还是有的,可以精准地定位到用户的设备,然后远程调试。
image

感觉比起chii还是好点,毕竟商业公司。
chii上一次发行版本还是2024年,所以才导致PR还不合并的问题。

总结

如果要在手机上调试,那么可以使用Kiwi Browser,他提供开发者工具。
如果要远程调试,chii用起来还是不太行。

建议使用chrome的inspect,可以直接改样式,而且直接影响手机上,非常方便。
chrome://inspect/#devices
不过有时候会白屏,不知道怎么解决。

posted @ 2025-08-04 03:43  魂祈梦  阅读(21)  评论(0)    收藏  举报