Giter Site home page Giter Site logo

msojocs / wechat-web-devtools-linux Goto Github PK

View Code? Open in Web Editor NEW
550.0 15.0 56.0 3.52 MB

适用于微信小程序的微信开发者工具 Linux移植版

License: MIT License

Shell 63.46% Dockerfile 1.52% JavaScript 33.26% HTML 0.77% Makefile 0.58% Python 0.41%
wechat wechat-devtools miniprogram weixin weapp linux wxapp wechat-mini-program wechat-ide nwjs-ide

wechat-web-devtools-linux's Introduction

微信开发者工具 Linux版



Node.js CI wechat-tools nwjs node

这是微信开发者工具 Linux版


项目说明

本项目是一个完整的搭建Linux下可用的“微信开发者工具”的脚本和工具集, 用于在Linux下的GNOME桌面上搭建可以持续更新和使用的“微信开发者工具”。

本项目修改自:https://github.com/dragonation/wechat-devtools/

项目地址

进度

当前工具可以在Linux上构筑最新版 1.06.2310080,支持CLI模式。 另现在已经可以直接在设置界面里面修改字体,手工输入字体名称就可以。

功能测试记录

测试记录

注意:

此测试仅在修复某项功能时测试通过,并不代表阁下在使用时是正常可用的;因为我没有精力在每个版本发布前进行一次测试。

在阁下遇到任何无法解决的问题时,请新建一个 issue

系统要求

  • 基于Linux的桌面系统,首选GNOME(其他的桌面环境可能会有问题,未测试)
  • CI自动构建的包对 glibc 和 libstdc++ 有一定的版本要求,glibc 的版本要求2.23,libstdc++ 的版本要求3.4.21
  • 如果你下载的是 wine 版本,那么你需要安装有 wine wine-binfmt 支持,建议版本在5.0以上,低版本可能会存在有问题

CLI支持

在项目的 bin 目录中有 wechat-devtools-cli 脚本,是微信开发者工具的命令行支持 的Linux版本。相关资料可以在微信CLI命令行V2上找到。

使用方法

  1. 在线安装
  2. 可以在本项目的Release中,寻找已经构筑好了的软件包,下载使用。 如果Release版本存在问题,可以尝试Continuous版本,这是基于master分支的最新提交构建的,会及时修复一些 bug,但也可能会带来新的 bug。
  3. 你可以 自行构建

在线安装

目前支持以下平台:

  1. 统信应用商店(deepin)

自行构建

注: 如果想构建 wine 版本,请添加环境变量:export WINE=true 。注意:不受支持。

方法0(推荐)

理论上此方法99%成功;在网络不稳定时容易失败(原因懂得都懂,构建过程已经尽量使用镜像源)

  1. 如果构建 wine 版本,请先在Linux环境中自行安装 wine wine-binfmt
  2. 请安装 docker docker-compose
  3. 克隆本项目:
    git clone --recurse-submodules https://github.com/msojocs/wechat-web-devtools-linux.git
    
  4. 在本地项目目录中执行如下的语句,构筑开发者工具:
    docker-compose up
    
  5. 在本地项目目录中执行如下的语句,可以安装应用图标(非必须):
    ./tools/install-desktop-icon-node
    

之后即可通过点击应用图标启动微信开发者工具,也可以运行 bin/wechat-devtools 通过命令行启动

方法1

由于使用到 node-gyp nw-gyp,此方法会受 pythonnode 版本影响出现一些难以预料的异常(比如使用 node15.0.1 时,大部分模块构建会被忽略,但没有任何报错信息)。但是,Docker 构建方式会帮你处理好这些问题。

  1. 如果构建 wine 版本,请先在Linux环境中自行安装 wine wine-binfmt

  2. 安装编译 nodegit 所需的依赖:python2.7 python3.6及以上 libkrb5-dev gcc openssl libssh2-1-dev g++ make pkg-config

    另外 7z 旧版解压可能存在问题(未测试最低版本号,比如:ubuntu16.04 自带的不行),请参考 Dockerfile

  3. 克隆本项目:

    git clone --recurse-submodules https://github.com/msojocs/wechat-web-devtools-linux.git
    
  4. 在本地项目目录中执行如下的语句,构筑开发者工具:

    ./tools/setup-wechat-devtools-bash
    
  5. 在本地项目目录中执行如下的语句,可以安装应用图标(非必须):

    ./tools/install-desktop-icon-bash
    

之后即可通过点击应用图标启动微信开发者工具,也可以运行 bin/wechat-devtools 通过命令行启动

与其他Linux下的微信开发者工具版本区别

  1. 支持最新版本,并个人会持续更新,在添加新的tag时,actions会自动构建并上传Release;
  2. 核心构筑过程完全开源,可以自行修改;
  3. 修复了nwjs上关于Menu的段错误,确保最新版本可以正常启动 (by dragonation);
  4. 在构筑过程中会重新编译node_modules,确保原生模块可以在Linux上正确运行;
  5. 下载更新可以支持断点再续,并使用了taobao国内的npm源,加速下载(稳定性待测试)。
  6. 纯 Linux 支持,使用 nodejs 实现模拟官方编译器

后续计划

请参考: 处理计划

移植相关

请参考: 移植流程记录

FAQ

请参考: FAQ

界面截图

版本 1.05.2201240 screenshot 1.03.2006090

版本 1.03.2006090 screenshot 1.03.2006090

版本 1.02.2001191 screenshot 1.02.2001191

赞赏

如果这个仓库让你感到舒适,可以点个Star或者请这个菜鸡大学生喝杯咖啡(请尽量带上github昵称):

赞赏码

感谢赞赏支持

时间倒序

赞赏人 赞赏 时间
liushuai05 88.00¥ 2023-12-26
LGTU 10.00¥ 2023-11-25
WRXinYue 10 2023-11-09
silentdoer 50.00¥ 2023-09-26
??? 20 2023-08-11
Geequlim 100 2023-07-12
对方正在输入 10 2023-04-28
@DaqiongYang 50 2023-03-29
AInoob 5 2023-01-30
??? 5 2023-01-18
仙人柱 50.00¥ 2022-08-09
guanzhengyinqin 20.00¥ 2022-07-14
nsfoxer 10.00¥ 2022-06-30
chiiihc 5.00¥ 2022-06-17
younland 20.00¥ 2022-06-15
chiiihc 5.00¥ 2022-06-14
陈陈菌 10.00¥ 2022-05-29
WWW 5.00¥ 2022-05-26
南极の短尾猫 20.00¥ 2022-05-22
猪宝的猪 20.00¥ 2022-05-15
finalwhy 66.60¥ 2022-05-09
CoryByte 5.00¥ 2022-04-23
Starrah 50.00¥ 2022-04-12
zyk-miao 5.00¥ 2022-04-12
icepie 20.00¥ 2022-04-08
Milder 50.00¥ 2022-03-23
. 20.00¥ 2022-03-21
shaoxp 5.00¥ 2022-03-16
李喆 10.00¥ 2022-03-05
david 5.00¥ ???

免责声明

微信开发者工具版权归腾讯公司所有,本项目旨在交流学习之用。如有不当之处,请联系本人,邮箱:[email protected]

Stargazers over time

Stargazers over time

wechat-web-devtools-linux's People

Contributors

dragonation avatar icepie avatar msojocs avatar shatian114 avatar tcstory avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechat-web-devtools-linux's Issues

安装出错了

我执行./tool/setup-wechat-devtools 时出下下面这个错误
01-26 15:36:44.013 [ERROR] Error: Command[/home/disburden/install/wechat-devtools/tools/update-nwjs-node] not found
at resolveCommand (mew_util.js/task.js:489:23)
at resolveCommandShebang (mew_util.js/task.js:527:39)
at prepareExecution (mew_util.js/task.js:563:27)
at executeCommand (mew_util.js/task.js:729:31)
at Step. (/home/disburden/install/wechat-devtools/tools/setup-wechat-devtools:21:12)
at Function.Async.call (mew_util.js/async.js:678:39)
at tryCall (mew_util.js/async.js:748:31)
at tryCall (mew_util.js/async.js:53:17)
at Async.then (mew_util.js/async.js:747:21)
at /home/disburden/install/wechat-devtools/tools/setup-wechat-devtools:13:4
at Object. (/home/disburden/install/wechat-devtools/tools/setup-wechat-devtools:44:40)
at Module._compile (internal/modules/cjs/loader.js:753:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:764:10)
at Module.load (internal/modules/cjs/loader.js:663:32)
at tryModuleLoad (internal/modules/cjs/loader.js:602:12)
at Function.Module._load (internal/modules/cjs/loader.js:594:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:806:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:812:3)

大佬能否给支持下官方minitest自动化测试框架

预先准备

  1. 删除~/.config/wechat_devtools目录,重新打开项目(若发布issue即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常
  3. 安装,手工打开项目、开发项目这些都没有问题。

问题描述
概述:不能使用官方minitest来控制开发者工具去执行小程序自动化测试。
详细:现在minitest能自动打开开发者工具,但是后边没有自动导入项目,用例也不能执行(用例执行原理是minitest写的python脚本通过开发者工具开放端口通信,发送命令,控制开发者工具中的模拟器小程序)
官方文档:https://minitest.weixin.qq.com/

问题复现
复现问题需要进行的操作:

  1. 下载安装python3环境
  2. 安装minium:pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip
    教程:https://minitest.weixin.qq.com/#/minium/Python/introduction/quick_start
  3. 编写python脚本。简单示例(注意修改成自己路径):
    ‘#!/usr/bin/env python3
    #-- coding: UTF-8 --
    import minium
    mini = minium.Minium({
    "project_path": r"/home/xxx/Desktop/miniprogram", #小程序项目路径
    "dev_tool_path": r"/opt/apps/io.github.msojocs.wechat-devtools-no-wine/files/bin/bin/wechat-devtools",#开发者工具的命令行工具路径
    "test_port": 9420 #minitest自动化端口
    })
    print(mini.get_system_info())#输出开发者工具模拟器的信息

    6.执行:python3 +上边文件

期望的效果
1、自动打开开发者工具
2、自动导入项目
3、自动打开项目
4、输出自定义的信息

截屏
当前问题截图(只走到了打开工具步骤)没有报错:
image

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

  • OS: e.g. deepin 23 Nightly (内核5.10.60-amd64-desktop)
  • Package: e.g. io.github.msojocs.wechat-devtools-no-wine_1.05.2203070-9_amd64、WeChat_Dev_Tools_v1.05.2203070-9_x86_64_no_wine.tar

代码片段
提供代码片段对维护者定位与修复问题有极大帮助;
若阁下不能提供,且维护者不能复现问题,那么阁下的issue将被搁置或者关闭。
查看创建代码片段的教程

额外的信息
一些关于此问题的额外信息。

AUR PKGUILD 中 compiler的md5sums错误

问题描述
AUR PKGUILD 中 compiler的md5sums错误,导致通过yay -S wechat-devtools安装失败

问题复现
复现问题需要进行的操作:
yay -S wechat-devtools

清除缓存

期望的效果
修改 compiler.tar.gz 的md5sums 为 a9e061c97afbbc295b5664a2d8065492

截屏
image

image

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

  • OS: Arch Linux
  • Package: aur

额外的信息

预览时无法显示模板, 提示 Template `xxx` not found.

问题描述
wxml 使用 template 时, 调试器会报 Template "xxx" not found. 并无法显示这个模板

而真机调试却可以直接显示它 (可以排除是编译的问题)

问题复现
复现问题需要进行的操作:
根据 文档 创建一个新项目, 并使用 template

期望的效果
在小程序开发工具当中正常显示 template

截屏
待添加

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

代码片段

<!-- 定义template -->
<template name="msgItem">
  <view>
    <text> {{index}}: {{msg}} </text>
    <text> Time: {{time}} </text>
  </view>
</template>


<!-- 使用 template -->
template is="msgItem" data="{{...item}}"/>

额外的信息
一些关于此问题的额外信息。

ubuntu22.04出现导入卡住的问题

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常

问题描述

在ubuntu22.04 下, 导入项目时会卡住, 并一直停留在卡住的层面

问题复现

  1. 打开项目
  2. 点击 导入
  3. 就卡住了, 导入个空文件夹都会被卡住。
  4. 然后就没有然后了。 我是直接使用ubuntu22.04 新装系统,不是从18升级过来的系统。下载别的版本也不行

ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
在命令行窗口出现这种错误

期望的效果

截屏

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

代码片段

额外的信息

官方项目测试不通过

问题描述
编译报错

问题复现
复现问题需要进行的操作:

  1. https://github.com/wechat-miniprogram/miniprogram-demo

期望的效果
项目编译正常

截屏
image

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

  • OS: [e.g. iOS]
  • Package [e.g. xxx_wine.tar.gz]
  • Wine Version [e.g. 7]

额外的信息
一些关于此问题的额外信息.

  • 测试wine版本是否正常(测试正常)
  • 编译器增加debug流程便于测试
  • 修正wcc编译器

弱化对于wine的依赖

目前已知需要调用wine的部分:

  1. wcc编译器,位置: package.nw/js/vendor/wcc.exe
  2. wcsc编译器,位置: package.nw/js/vendor/wcc.exe

Linux版本的wccwcsc编译器

官方有一个npm包: miniprogram-compiler
内部包含了Linux, Mac, Win下的编译器,但是是阉割版。查看对比

  1. miniprogram-compiler中的wcc可执行文件没有对懒加载场景进行区分(webviewappservice
  2. wcsc 似乎一致 miniprogram-compiler内嵌版本缺少懒加载功能;工具自带编译器有懒加载,但没有在说明中指出。

注意:
所认为一致的地方可能是不一致的;
即只是说明一样,实际内部执行逻辑不一样(因为在对比文件中可以看到:版本一致,功能不一致;极有可能出现更新内部逻辑,却不更新版本号的情况)

处理

  • wcsc: 编写脚本,默认调用Linux版本编译器,在有懒加载的情况下(带ll参数)调用win版本
  • wcc: 编写脚本,默认调用Linux版本编译器,在有懒加载的情况下(带ll参数)调用win版本

compose 执行失败

wechat_devtools_1 | Rebuilding wechat-devtools node modules Result Code: 0
wechat_devtools_1 | Patching wechat-devtools
wechat_devtools_1 | Patching Other
wechat_devtools_1 | cp: cannot stat '/workspace/compiler/wcc_node': No such file or directory
wechat_devtools_1 | 异常 Error: Command failed: /workspace/tools/fix-other.sh
wechat_devtools_1 | cp: cannot stat '/workspace/compiler/wcc_node': No such file or directory
wechat_devtools_1 |
wechat_devtools_1 | at checkExecSyncError (node:child_process:826:11)
wechat_devtools_1 | at execSync (node:child_process:900:15)
wechat_devtools_1 | at /workspace/tools/update-wechat-devtools-node:319:9
wechat_devtools_1 | at new Promise ()
wechat_devtools_1 | at patch_other (/workspace/tools/update-wechat-devtools-node:318:12)
wechat_devtools_1 | at start (/workspace/tools/update-wechat-devtools-node:337:15)
wechat_devtools_1 | at processTicksAndRejections (node:internal/process/task_queues:96:5) {
wechat_devtools_1 | status: 1,
wechat_devtools_1 | signal: null,
wechat_devtools_1 | output: [
wechat_devtools_1 | null,
wechat_devtools_1 | <Buffer 66 69 78 3a 20 77 65 62 76 69 65 77 20 6d 61 6e 61 67 65 72 0a 66 69 78 3a 20 77 63 63 2c 77 63 73 63 0a 74 6f 74 61 6c 20 30 0a>,
wechat_devtools_1 | <Buffer 63 70 3a 20 63 61 6e 6e 6f 74 20 73 74 61 74 20 27 2f 77 6f 72 6b 73 70 61 63 65 2f 63 6f 6d 70 69 6c 65 72 2f 77 63 63 5f 6e 6f 64 65 27 3a 20 4e 6f ... 24 more bytes>
wechat_devtools_1 | ],
wechat_devtools_1 | pid: 13322,
wechat_devtools_1 | stdout: <Buffer 66 69 78 3a 20 77 65 62 76 69 65 77 20 6d 61 6e 61 67 65 72 0a 66 69 78 3a 20 77 63 63 2c 77 63 73 63 0a 74 6f 74 61 6c 20 30 0a>,
wechat_devtools_1 | stderr: <Buffer 63 70 3a 20 63 61 6e 6e 6f 74 20 73 74 61 74 20 27 2f 77 6f 72 6b 73 70 61 63 65 2f 63 6f 6d 70 69 6c 65 72 2f 77 63 63 5f 6e 6f 64 65 27 3a 20 4e 6f ... 24 more bytes>
wechat_devtools_1 | }
wechat_devtools_1 | 失败 command: node
wechat_devtools_1 | at ./tools/setup-wechat-devtools-bash:1
wechat_devtools_1 | at
wechat_devtools_1 | 失败 command: ./tools/setup-wechat-devtools-bash
wechat_devtools_1 | at docker/entrypoint:1
wechat_devtools_1 | at

通过 Snap 安装后无法启动

问题描述
通过 Snap 安装后 wechat-devtools 后,无法在终端通过 wechat-devtools 启动,且 Launcher 也没有出现相关启动图标

问题复现

$ snap install wechat-devtools
snap "wechat-devtools" is already installed, see 'snap help refresh'
$ wechat-devtools
zsh: command not found: wechat-devtools

期望的效果
能够启动程序

截屏

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

  • OS: Manjaro
  • Package: 1.06.2206020-1
  • Wine Version: 7.13

bug:模拟器空白

问题描述:
载入项目后,模拟器空白,调试器报错:
[ WXML 文件编译错误] /home/xxx/.config/wechat_devtools/WeappVendor/wcc.exe: 1: MZ������@������: not found /home/xxx/.config/wechat_devtools/WeappVendor/wcc.exe: 2: �����aV��K������#�����: not found /home/xxx/.config/wechat_devtools/WeappVendor/wcc.exe: 3: Syntax error: word unexpected (env: Windows,mp,1.05.2201240; lib: 2.15.0) [ WXSS 文件编译错误] /home/xxx/.config/wechat_devtools/WeappVendor/wcsc.exe: 1: MZ������@������: not found(env: Windows,mp,1.05.2201240; lib: 2.15.0)
问题呈现:
Screenshot from 2022-02-26 11-29-31
系统平台:
Linux Mint 20.2 Cinnamon 5.4.0-92-generic
安装包:
WeChat_Dev_Tools_v0.17_x86_64_wine.tar.gz

[异常]spwan接收数据异常

问题描述
打开配置"lazyCodeLoading": "requiredComponents"的项目,等待编译,报错:
[ WXML 文件编译错误]
lazyload parse wxml fail: SyntaxError: Unexpected end of JSON input(env: Linux,mp,1.05.2203070; lib: 2.22.0)

问题复现
复现问题需要进行的操作:

  1. 打开 文件较多的项目
  2. 等待编译
  3. 调试器报错

期望的效果
项目正常编译

截屏
image

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

额外的信息

调用逻辑

devtools -> wcc.js -> wcc.bin

问题

经测试,wcc.js输出正常。
devtools是通过spawn调用wcc.js, 在这一步骤接收的数据缺失了。
例如:原数据 -- 1234567890 ,但收到的是 12345,数据缺失导致无法正常解析。

复现

手动编写spawn, 带上参数执行,获取到的数据不完整;
但是设定stdio: 'inherit'选项,输出是正常完整的。
不完整的数据大小是255.8KB,近似等于256KB,一个神奇的数值。
另外:使用spawn调用wine不带stdio: 'inherit'选项,可以得到正常完整结果。

简单测试代码

const fs = require('fs')
const file = fs.readFileSync('/path/to/wechat-web-devtools-linux/test/wcc/llw/2/wine.json')
process.stdout.write(file)
process.exit(0)

使用spawn调用,数据丢失

[公告] wine版本停止维护

虽然 wine 的版本兼容性较好,但性能不佳;
且现在,Linux 版编译器不断完善,没有出现过于离谱的不可修复性问题;
故决定停止 wine 相关维护。

停止相关维护指的是:
现有 wine 相关代码保留,但不进行更新;
现在已经停止统信商店平台 wine 版本的更新。

从 AUR 安装时构建失败

问题描述

从 AUR 安装 wechat-devtools 时构建失败

问题复现

yay -S wechat-devtools

期望的效果

安装成功

版本信息 (这是必要的)

  • OS: Manjaro
  • Package: wechat-devtools 2:1.06.2206090-1
  • Wine Version: 7.13

代码片段

相关报错(前面符合预期的日志已忽略):

run rebuild-node-modules.sh
 ######## 版本信息 2022-07-27 16:22:08 ########
NW VERSION: 0.55.0
nw-gyp version: v3.6.6
node version: v16.4.2
npm version: 7.18.1
Python 2.7.18
Python 3.10.5
 非ACTION模式, 设置镜像源  
--2022-07-27 16:22:08--  https://mirror.ghproxy.com/https://github.com/microsoft/ripgrep-prebuilt/releases/download/v12.1.1-1/ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving mirror.ghproxy.com (mirror.ghproxy.com)... failed: Name or service not known.
wget: unable to resolve host address ‘mirror.ghproxy.com’
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: wechat-devtools

「已解决」Manjaro 更新 wechat-devtools 时 md5 校验失败(清理缓存再更新即可解决)

预先准备

  1. 删除~/.config/wechat_devtools目录,重新打开项目(若发布issue即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建项目):正常

问题描述
Manjaro 更新 wechat-devtools 时 md5 校验失败

问题复现
复现问题需要进行的操作:

  1. 打开 pamac
  2. 点击 更新
  3. 更新 wechat-devtools 2:1.05.2203070-3

期望的效果

更新完成无报错

截屏
添加截图图片有助于解释您的问题(复制图片后直接粘贴将自动上传图片)。

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

  • OS: Linux xx 5.10.105-1-MANJARO #1 SMP PREEMPT Fri Mar 11 14:12:33 UTC 2022 x86_64 GNU/Linux
  • Package: wechat-devtools 2:1.05.2201240-9
  • Wine Version: 7.4-1

代码片段
提供代码片段对维护者定位与修复问题有极大帮助;
若阁下不能提供,且维护者不能复现问题,那么阁下的issue将被搁置或者关闭。
查看创建代码片段的教程

额外的信息

软件包管理器提供的信息

正在准备...
正在同步软件包数据库...
正在克隆 wechat-devtools 构建文件...
生成 wechat-devtools 信息...
正在检查 wechat-devtools 依赖关系...
警告: python-pyqt5:本地 (5.15.6-7.1) 比 extra 的版本更新 (5.15.6-7)
正在解决依赖关系...
正在检查内部冲突...

正在构建 wechat-devtools...
==> 正在创建软件包:wechat-devtools 2:1.05.2203070-3 (2022年03月15日 星期二 14时45分01秒)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系
==> 获取源代码...
  -> 找到 nwjs-v0.53.1.tar.gz
  -> 找到 wechat_devtools_1.05.2203070_x64.exe
  -> 找到 node-v16.1.0.tar.gz
  -> 找到 compiler.tar.gz
  -> 找到 wechat-devtools.desktop
  -> 找到 logo.svg
  -> 找到 fix-cli.sh
  -> 找到 fix-menu.sh
  -> 找到 fix-core.sh
  -> 找到 rebuild-node-modules.sh
  -> 找到 fix-package-name.js
  -> 找到 wxvpkg_pack.js
  -> 找到 wxvpkg_unpack.js
  -> 找到 fix-other.sh
==> 正在验证 source 文件,使用md5sums...
    nwjs-v0.53.1.tar.gz ... 通过
    wechat_devtools_1.05.2203070_x64.exe ... 通过
    node-v16.1.0.tar.gz ... 通过
    compiler.tar.gz ... 失败
    wechat-devtools.desktop ... 通过
    logo.svg ... 通过
    fix-cli.sh ... 已跳过
    fix-menu.sh ... 已跳过
    fix-core.sh ... 已跳过
    rebuild-node-modules.sh ... 已跳过
    fix-package-name.js ... 已跳过
    wxvpkg_pack.js ... 已跳过
    wxvpkg_unpack.js ... 已跳过
    fix-other.sh ... 已跳过
==> 错误: 一个或多个文件没有通过有效性检查!
构建 wechat-devtools 失败

正在准备...
正在同步软件包数据库...
正在更新 AUR...
正在克隆 wechat-devtools 构建文件...
生成 wechat-devtools 信息...
正在检查 wechat-devtools 依赖关系...
警告: python-pyqt5:本地 (5.15.6-7.1) 比 extra 的版本更新 (5.15.6-7)
正在解决依赖关系...
正在检查内部冲突...

正在构建 wechat-devtools...
==> 正在创建软件包:wechat-devtools 2:1.05.2203070-3 (2022年03月15日 星期二 14时49分07秒)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系
==> 获取源代码...
  -> 找到 nwjs-v0.53.1.tar.gz
  -> 找到 wechat_devtools_1.05.2203070_x64.exe
  -> 找到 node-v16.1.0.tar.gz
  -> 找到 compiler.tar.gz
  -> 找到 wechat-devtools.desktop
  -> 找到 logo.svg
  -> 找到 fix-cli.sh
  -> 找到 fix-menu.sh
  -> 找到 fix-core.sh
  -> 找到 rebuild-node-modules.sh
  -> 找到 fix-package-name.js
  -> 找到 wxvpkg_pack.js
  -> 找到 wxvpkg_unpack.js
  -> 找到 fix-other.sh
==> 正在验证 source 文件,使用md5sums...
    nwjs-v0.53.1.tar.gz ... 通过
    wechat_devtools_1.05.2203070_x64.exe ... 通过
    node-v16.1.0.tar.gz ... 通过
    compiler.tar.gz ... 失败
    wechat-devtools.desktop ... 通过
    logo.svg ... 通过
    fix-cli.sh ... 已跳过
    fix-menu.sh ... 已跳过
    fix-core.sh ... 已跳过
    rebuild-node-modules.sh ... 已跳过
    fix-package-name.js ... 已跳过
    wxvpkg_pack.js ... 已跳过
    wxvpkg_unpack.js ... 已跳过
    fix-other.sh ... 已跳过
==> 错误: 一个或多个文件没有通过有效性检查!
构建 wechat-devtools 失败

根据文档推荐的方法0安装失败

问题描述
安装失败

问题复现 据 - 方法0(推荐)
方法0(推荐)

理论上此方法99%成功;在网络不稳定时容易失败(原因懂得都懂,构建过程已经尽量使用镜像源)

如果构建 wine 版本,请先在Linux环境中自行安装 wine wine-binfmt;
请安装 docker docker-compose
克隆本项目:

git clone --recurse-submodules https://github.com/msojocs/wechat-web-devtools-linux.git

在本地项目目录中执行如下的语句,构筑开发者工具:

docker-compose up

在本地项目目录中执行如下的语句,可以安装应用图标(非必须):

./tools/install-desktop-icon-node

之后即可通过点击应用图标启动微信开发者工具,也可以运行 bin/wechat-devtools 通过命令行启动

期望的效果
最起码安装成功呀。

截屏
2022-08-27 03-54-40屏幕截图

版本信息

  • OS: Linux Mint 21 Cinnamon

CI构建的包无法编译

问题描述
本地构建使用正常,使用CI构建的包无法编译
Error: spawn /tmp/.mount_WeChatwUr1gL/package.nw/node_modules/wcsc/bin/linux/wcsc EACCES

问题复现
复现问题需要进行的操作:

  1. 打开项目等待
  2. 出现报错

期望的效果
CI构建的包能正常使用

截屏
添加截图图片有助于解释您的问题.

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

  • OS: [e.g. iOS]
  • Package [e.g. xxx_wine.tar.gz]
  • Wine Version [e.g. 7]

额外的信息
一些关于此问题的额外信息.

Ubuntu 20.02 系统下直接运行.AppImage时出错

以下是运行时出现的错误, 不知道怎么解决。

yingfu@ubuntu18:/Downloads$ ./WeChat_Dev_Tools_v1.05.2204250-1_x86_64_no_wine.AppImage
cp: 无法创建普通文件'/home/yingfu/.config/wechat-devtools/.build_time': 没有那个文件或目录
清理缓存
Error: unrecognized flag --harmony-weak-refs
Try --help for options
Error: unrecognized flag --harmony-weak-refs
Try --help for options
[294578:294585:0510/014147.812437:ERROR:cert_verify_proc_builtin.cc(601)] No net_fetcher for performing AIA chasing.
[294578:294585:0510/014148.050069:ERROR:cert_verify_proc_builtin.cc(601)] No net_fetcher for performing AIA chasing.
[294578:294585:0510/014148.206698:ERROR:cert_verify_proc_builtin.cc(601)] No net_fetcher for performing AIA chasing.
[294578:294586:0510/014221.707285:ERROR:cert_verify_proc_builtin.cc(601)] No net_fetcher for performing AIA chasing.
yingfu@ubuntu18:
/Downloads$

deepin系统下,打开小程序项目后,默认自动编译报错

问题描述
deepin系统下,直接下载安装包[WeChat_Dev_Tools_v1.05.2203030-2_deepin_amd64.deb]或[WeChat_Dev_Tools_v1.05.2203030-continuous_deepin_amd64.deb],直接安装,然后载入原来能正常运行的项目,然后发现编译问题。另
复现问题需要进行的操作:

  1. 打开 一个从git上下载的项目,已知该项目在WINDOWS上运行调试均无问题
  2. 看到问题:打开后的自动编译报错:
    [ WXML 文件编译错误] lazyload parse wxml fail: SyntaxError: Unexpected end of JSON input(env: Windows,mp,1.05.2203030; lib: 2.22.1)

期望的效果
能够在deepin上正常运行编译

截屏
添加截图图片有助于解释您的问题.

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

  • OS: [deepin 20.4]
  • Package [WeChat_Dev_Tools_v1.05.2203030-2_deepin_amd64.deb]或[WeChat_Dev_Tools_v1.05.2203030-continuous_deepin_amd64.deb]
  • Wine Version [e.g. 7]

额外的信息
外想问一下,deepin上的这两个安装包,是否为不依赖wine的版本?

软件包构建与发布

发布平台:

发布格式:

  • 普通打包
  • Appimage
  • deb(deprecated)
  • deb(using debuild)
  • pkg.tar.zst

其他:

  • ia32(暂不处理,有需求再处理)
  • 低版本构建,加强兼容性
  • 规范版本命名

TODO:

  • 优化打包内容(如更新日志等)

安装过程报错

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,
  2. 正常

问题描述
按照README上的流程安装,出现错误

2022-07-06 17-14-07 的屏幕截图

wcc、wcsc编译器

一些信息可以在此查看: #12

主要处理懒加载的情况
实现思路:

  1. 调用Linux的编译器生成非懒加载代码
  2. 与懒加载的最终代码进行比对,看是否有将生成的代码修改成懒加载代码的可能
  3. 尝试实现

基础

  • wcc
  • wcsc
  • 可视化wcc
  • 可视化wcsc

JavaScript

  • wcc
  • wcsc
  • 可视化wcc
  • 可视化wcsc

TypeScript

  • wcc
  • wcsc
  • 可视化wcc
  • 可视化wcsc

TypeScript + Less

  • wcc
  • wcsc
  • 可视化wcc
  • 可视化wcsc

TypeScript + Sass

  • wcc
  • wcsc
  • 可视化wcc
  • 可视化wcsc

Ubuntu 16.04 模拟器正常显示,调试器不显示

预先准备

  1. 删除~/.config/wechat_devtools目录,重新打开项目(若发布issue即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):模拟器正常显示,调试器不显示

问题描述

  1. 初次打开开发者工具,提示“无法加载以下来源的扩展程序: . 清单文件缺失或不可读取”
  2. 导入小程序,模拟器可以正常显示,调试器显示不出来(调试基础库一直在加载中)

问题复现
复现问题需要进行的操作:

  1. 打开项目
  2. 点击 '切换调试器'
  3. 调试器始终不显示

期望的效果
可以正常显示调试器

截屏
选区_177

miniprogram-1 - 微信开发者工具 Stable v1 05 2203070_178

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

  • OS: e.g. Ubuntu 16.04 xenial
  • Package: e.g. WeChat_Dev_Tools_v1.05.2203070-6_x86_64_no_wine.AppImage
  • Wine Version: e.g. 7 可选

代码片段
提供代码片段对维护者定位与修复问题有极大帮助;
若阁下不能提供,且维护者不能复现问题,那么阁下的issue将被搁置或者关闭。
查看创建代码片段的教程

额外的信息
一些关于此问题的额外信息。

讨论:有没有可能把内置的Git管理器单独提取出来?或者有特别好的替代品

一直使用linux环境,但是没遇到一个趁手的git管理器。

  • 一些出名的,比如gitkraken,感觉凑合能用。
  • 还有smartgit,交互设计都很老,不太好用
  • 最好用的应该是sourcetree,只是没有linux平台的

开发者工具内置了一个Git管理器,我觉得挺好用的,跟sourcetree很像,就是无法单独在任意项目中使用。所以在想,有没有这个可能提取出来?

wcc、wcsc编译器没有正确复制

问题描述
wcc、wcsc编译器没有正确复制到~/.config/wechat_devtools/WeappVendor目录

问题复现
复现问题需要进行的操作:

  1. 删除目录 /.config/wechat_devtools
  2. 以游客身份打开项目,正常; 但~/.config/wechat_devtools/WeappVendor目录没有wcc.bin wcsc.bin
  3. 关闭, 在打开项目
  4. 报错

期望的效果
第二次编译正常

截屏
添加截图图片有助于解释您的问题.

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

  • OS: [e.g. iOS]
  • Package [e.g. xxx_wine.tar.gz]
  • Wine Version [e.g. 7]

额外的信息
一些关于此问题的额外信息.

Linux版编译器完善测试用例收集

前言

Linux编译器目前并非完美实现,还需要测试用例来完善。

收集

若为开源项目,请提供开源链接;

若为私密项目,可以提供可复现的用例,或不提供。

编译器地址

wc-compiler

自动更新窗口无法关闭

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常

问题描述
今天启动工具,收到推送更新窗口,窗口无法关闭掉,只能kill

问题复现

  1. 收到推送更新时会自动复现;
  2. 手动点击检查更新也能复现;

期望的效果
希望屏蔽工具自动更新或者能够关闭自动弹出的窗口

截屏
image

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

  • OS: Manjaro 21.3.7 Ruah
  • Package: 通过 yay -S wechat-devtools安装的

代码片段

额外的信息

官方最新稳定版跟踪

大佬 ,最近官方更新了新版本1.06.2204180,我看这里面修复的那一长串问题列表,有些好像就是我前段时间跟您一直反馈说没解决反复出现的。另外这个ISSUES不是BUG,请大佬帮忙更改一下labels

使用小程序编译js报错的问题

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常

问题描述

使用ubuntu20.02 , 导入原本的一个项目后。 编译器编译完成后,提示.split(split_mark) 错误

问题复现

  1. 打开项目
  2. 导入项目文件夹
  3. 点击编译
  4. 出现编译错误。在console和界面中都出现了

期望的效果

捕获

截屏

image

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

  • OS: ubuntu20.02
  • Package: WeChat_Dev_Tools_v1.05.2204250-1_x86_64_no_wine.AppImage
  • Wine Version: e.g. 7 无

代码片段

以下是我的小程序的源代码下载地址
https://gitee.com/saiya-tianma/qs-wxapp.git

额外的信息

跟进1.05.2204180版本的wcc、wcsc编译器变更

node版本编译器:

  • wcsc合并至wcc中

wechat_devtools_1.05.2204180_x64/code/package.nw/js/vendor/{wcc.exe,wcsc.exe} md5发生变更:

编译器 1.05.2203070 1.05.2204180
wcc dbb9ed8bdee6654460dafc618f9622f3 0634f39da88890439a92351ce102efd9
wcsc 3999c590c57c764b152bc6db3b3288c4 d45f45f109afa238cd83c8ad1d0e2a5e

关于浅色暗色主题跟随系统的功能

感觉这也不算个bug, 就当是个requests吧...不要太在意!

折腾了半天没定位到它是怎么监听系统主题变化的....如果可以的话, 希望能支持一下linux下gtk亮暗色主题变化的监听

vscode 我一般用的是这个插件 vscode-auto-dark-mode-windows 但是能力有限没看懂他是咋监听的...希望能给大家提供点帮助

使用 snap 1.05.2203070-9 版本 页面卡住

image
image

清理缓存
Gtk-Message: 10:54:25.787: Failed to load module "canberra-gtk-module"
Gtk-Message: 10:54:25.788: Failed to load module "canberra-gtk-module"
[76138:76253:0425/105425.826509:ERROR:nacl_browser.cc(312)] Failed to open NaCl IRT file "/snap/wechat-devtools/17/nwjs/nacl_irt_x86_64.nexe": -4
Error: unrecognized flag --harmony-weak-refs
Try --help for options
/bin/sh: 1: gnome-shell: not found
/bin/sh: 1: gnome-shell: not found
[76271:76276:0425/105427.130111:ERROR:cert_verify_proc_builtin.cc(601)] No net_fetcher for performing AIA chasing.
Error: unrecognized flag --harmony-weak-refs
Try --help for options
/bin/sh: 1: gnome-shell: not found
/bin/sh: 1: gnome-shell: not found
Error: unrecognized flag --harmony-weak-refs
Try --help for options
Error: unrecognized flag --harmony-weak-refs
Try --help for options
[76138:76138:0425/105441.033605:ERROR:CONSOLE(1)] "console.assert", source: devtools://devtools/bundled/ui/ActionRegistry.js (1)
[76138:76138:0425/105441.033767:ERROR:CONSOLE(1)] "console.assert",

message:模拟器长时间没有响应,请确认你的业务逻辑中是否有复杂运算,或者死循环
appid: touristappid
openid: o6zAJs6H8q9_pTpncB7HYYIWsPXk
ideVersion: 1.05.2203070
osType: linux-x64
time: 2022-04-25 10:55:46

AUR升级nwjs遇到undefined symbol问题

目前 master 分支nwjs版本0.55.0,AUR需要跟进更新。

AUR进行脚本更新后,编译使用正常;
AUR尝试将版本替换为0.55.0(node16.4.2)后,编译运行主界面右侧无法显示,工具调试器报spdlog相关报错undefined symbol: xxxx
使用nw-gyp重新构建spdlog,主界面正常显示,但是出现扩展宿主意外终止的报错。

使用一段时间后左边模拟器白屏(随机性)

预先准备

  1. 已经删除~/.config/wechat_devtools目录,重新打开项目(问题未能解决);
  2. HelloWorld正常

问题描述
在使用一段时间后保存代码自动编译左边模拟器界面会随机性白屏(大概过1~2分钟左右会自动编译成功),只能看见底部导航栏,f12控制台也没有相关报错信息

问题复现
写项目时随机性发生

截屏
image

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

  • OS: Manjaro
  • Package: AUR版本 wechat-devtools 2:1.05.2203070-3
  • Wine Version: 用的node版本编译(14.18.3)

使用 cli 命令打开项目的时候出现错误

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常

正常

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

  • OS: ArchLinux
  • Package: 2:1.05.2204250-1
  • Wine Version: No

信息

$ wechat-devtools-cli open --project /home/icepie/Projects/icepie/uni-ts-template/dist/build/mp-weixin
⠋ initialize
✖ #initialize-error: Error: ENOENT: no such file or directory, open '/home/icepie/AppData/Local/wechat-devtools/User Data/44eea8721dfe181818c090d3e3db0258/Default/.cli'

貌似还有些关于 Windows 版本当中的路径未得到修复

编辑器内输入法退格问题

预先准备

  1. 删除 ~/.config/wechat-devtools 目录,重新打开项目(若发布 issue 即默认阁下执行了此操作且问题没有解决);
  2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常

问题描述

输入法打错字退格时会删除之前已经打好的字
问题复现

根据截屏图片即可复现
期望的效果

退格只删除输入错误的部分,而不是删除已经打好的部分
截屏

re

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

  • OS: deepin 20.5
  • Package: [io.github.msojocs.wechat-devtools-no-wine_1.05.2204250-2_amd64.deb]
    [WeChat_Dev_Tools_v1.05.2204250-2_x86_64_no_wine.AppImage]
  • Wine Version: 无

代码片段


额外的信息

其他IDE正常,(idea系列、vscode均正常)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.