msojocs / wechat-web-devtools-linux

适用于微信小程序的微信开发者工具 Linux移植版
MIT License
678 stars 65 forks source link

如何同时开启多个IDE并运行不同小程序 #123

Open jackfromeast opened 1 week ago

jackfromeast commented 1 week ago

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常
  3. 注意:如果你的问题是编译器错误,那么请提供可复现的demo,否则会被直接关闭。

问题描述 您好!我正在尝试同时运行多个wechat-web-devtools并测试不同的小程序。因为IDE默认使用~/.config/wechat-devtools 目录来存放用户及运行状态信息,所以我通过更改wechat-web-devtools-linux/package.nw/package.json中的name字段来使IDE使用不同缓存目录。比如,将name字段设置成wechat-devtools-0后,IDE将新建~/.config/wechat-devtools-0作为缓存目录。但是,我发现通过此方法可以同时开启两个并运行正常。当开启第三个时候,IDE Server无法正常启动并一直卡住。想请问您有没有什么该解决问题的思路?

问题复现

  1. package.json中的name字段改为wechat-devtools-0后,运行wechat-web-devtools-linux/bin/wechat-devtools并登录(用户1)。
  2. package.json中的name字段改为wechat-devtools-1后,运行wechat-web-devtools-linux/bin/wechat-devtools并登录(用户2)。
  3. package.json中的name字段改为wechat-devtools-2后,运行wechat-web-devtools-linux/bin/wechat-devtools并登录(用户3)。
  4. package.json中的name字段改为wechat-devtools-0后,运行wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9222。IDE Server成功开启并可以自动化测试。
  5. package.json中的name字段改为wechat-devtools-1后,运行wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9223。IDE Server成功开启并可以自动化测试。(4/中IDE仍在运行)
  6. package.json中的name字段改为wechat-devtools-2后,运行wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9224。IDE Server无法正常开启,页面显示不完整并且cli显示IDE Server端口连接超时。

期望的效果 可以同时打开多个IDE并运行不同的小程序。

(name=wechat-devtools-0)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9222
(name=wechat-devtools-1)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9223
(name=wechat-devtools-2)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9224

版本信息 (这是必要的):

任何关于以上问题解决的思路都十分感谢!

msojocs commented 1 week ago

这个确实没试过,我会抽空看一下。

jackfromeast commented 1 week ago

感谢!

msojocs commented 1 week ago

image

我试的是一个账户开启多个小程序,你是要多个账户登录?

jackfromeast commented 1 week ago

同一个账户也是可以的。我尝试不同账户是因为我如果使用同一个用户的话,在第二个wechat-devtools-cli启动的时候会报以下的错误:

[error] {
  code: 10,
  message: 'Error: 错误 Error: INVALID_TOKEN,invalid credential, access_token is invalid or not latest [20241112 11:16:01][] (code 10)Error: 错误 Error: INVALID_TOKEN,invalid credential, access_token is invalid or not latest [20241112 11:16:01][] (code 10)\n' +
    '    at Object.GENERIC_ERROR (/media/dataj/wechat-devtools-linux/wechat-web-devtools-linux-nodebug/package.nw/core.wxvpkg/7201d239ccdbdc262e2ecf5fe0c8aca3.js:2:93)\n' +
    '    at Proxy.exports.getAppInfo (/media/dataj/wechat-devtools-linux/wechat-web-devtools-linux-nodebug/package.nw/core.wxvpkg/b3effda444fe34caae1384305e9562c6.js:2:1063)\n' +
    '    at processTicksAndRejections (node:internal/process/task_queues:96:5)\n' +
    '    at async exports.getProjectInfo (/media/dataj/wechat-devtools-linux/wechat-web-devtools-linux-nodebug/package.nw/core.wxvpkg/9d9d19a87db58211a644d4d305c488d5.js:2:2443)\n' +
    '    at async /media/dataj/wechat-devtools-linux/wechat-web-devtools-linux-nodebug/package.nw/core.wxvpkg/7a975443f52e91830ae1d65cdf8c86db.js:2:3660\n' +
    '    at async Object.<anonymous> (/media/dataj/wechat-devtools-linux/wechat-web-devtools-linux-nodebug/package.nw/core.wxvpkg/7a975443f52e91830ae1d65cdf8c86db.js:2:3012)'
}

另外,想和您确认的一点是:您是在一个IDE Server启动了三个IDE还是通过以下的方式启动了三个不同的IDE Server?

(name=wechat-devtools-0)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9222
(name=wechat-devtools-1)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9223
(name=wechat-devtools-2)wechat-web-devtools-linux/bin/wechat-devtools-cli auto --project "miniapps/wxxxxxxxxxxxxxxxxxxx" --auto-port 9224
jackfromeast commented 1 week ago

tmp

msojocs commented 1 week ago

image

已复现,似乎不用登录就能触发。

msojocs commented 1 week ago

image

暂时记录一下,这里导致的。

msojocs commented 1 week ago

image

定位到一个启动 miniCode 服务器的代码,会一直尝试创建服务器;

但是原始代码只提供了 3212333233 两个端口,后面一直在尝试使用 33233 端口创建服务器;

原始代码没有sleep,导致卡死。

msojocs commented 1 week ago

@jackfromeast 你只开两个的情况下,第二个能正常使用吗?

我这边第二个菜单有问题。

image

jackfromeast commented 1 week ago

开启的第二个IDE里面小程序是可以正常运行的,但是菜单我没有试过。

我看看能不能除了32123和33233之外,再多加入几个备用端口用来通信。

msojocs commented 1 week ago

https://github.com/msojocs/wechat-web-devtools-linux/releases/tag/continuous

你试一下这个