Compare commits

..

136 Commits

Author SHA1 Message Date
msojocs
5b68973fc4 perf: 优化处理逻辑 2025-07-19 16:24:05 +08:00
msojocs
080ee2b6df feat: plasma支持 2025-07-17 21:50:59 +08:00
msojocs
465af9b79a refactor: 使用更简洁的主题监听方式 2025-07-17 20:28:41 +08:00
msojocs
322de01a35 fix: cli使用异常 #147 2025-07-15 22:43:17 +08:00
msojocs
8c9eeed51f docs: update readme 2025-07-13 12:50:03 +08:00
msojocs
a3e75a647f perf: 减少侵入式修改 2025-07-05 20:05:46 +08:00
msojocs
54ce4f4565 update: devtools to v1.06.2504010 2025-07-05 12:14:27 +08:00
msojocs
4b9612b7a6 perf: 优化更新弹窗处理方式 2025-07-05 12:09:32 +08:00
msojocs
940cd4a12d fix: 更新弹窗无法关闭 2025-07-05 10:03:14 +08:00
msojocs
bf2fbd90ed fix: 最新版dpkg的默认设置导致统信商店识别不了包 2025-05-24 11:52:39 +08:00
msojocs
7972c036f2 perf: 优化构建脚本 2025-05-23 20:56:17 +08:00
msojocs
75ea918b71 fix: worker无法使用 #145 2025-05-23 20:36:47 +08:00
msojocs
df2d94f3f2 fix: 使用旧的nw-gyp,解决模块编译失败 #144 2025-05-17 16:10:40 +08:00
msojocs
2778d18e9e update: compiler(Linux) v0.1.5 2025-05-02 16:29:35 +08:00
msojocs
e2d698f573 update: compiler(Linux) v0.1.4 2025-05-02 09:26:14 +08:00
msojocs
ab106f123a docs: v1.06.2503290-1 2025-04-30 15:47:41 +08:00
msojocs
f32e4d59c8 update: devtools to v1.06.2503290 2025-04-30 11:45:10 +08:00
msojocs
5cad0a1fac perf: 替换float-pigment。 2025-04-28 17:34:05 +08:00
msojocs
cab9cb805d
refactor: 分离ci文件 (#142) 2025-04-28 17:20:42 +08:00
msojocs
99b2a42170 update: node v16.11.0 (解决codebuddy无法使用。) 2025-04-28 16:58:31 +08:00
msojocs
cb363c5326
chore: 更新ci脚本 (#139)
* perf: replace ubuntu 20.04 with latest

* fix: Cannot handle 8-byte build ID

* perf: wxvpkg_pack 兼容windows
2025-04-24 13:54:58 +08:00
msojocs
70a2622fae
chore: 更新脚本适配当前ubuntu latest (#135, #134)
* perf: replace ubuntu 20.04 with latest

* fix: Cannot handle 8-byte build ID
2025-03-12 21:32:41 +08:00
msojocs
11cee791d5 docs: 更改描述版本号。 2025-02-18 15:46:39 +08:00
msojocs
5fe2af43d8 update: compiler(Linux) v0.1.3 2025-02-17 23:10:57 +08:00
msojocs
e47ef79745
fix: ci (#130) 2025-02-17 20:31:54 +08:00
msojocs
471984aa7b update: compiler(Linux) v0.1.2 2025-02-16 23:01:07 +08:00
msojocs
1a5519f125 update: devtools to v1.06.2412050 2025-01-17 20:45:16 +08:00
msojocs
23b2b57500 update: devtools to v1.06.2412040 2025-01-16 09:29:03 +08:00
msojocs
fbe81e32ba docs: 更新README.MD 2024-12-22 22:11:29 +08:00
msojocs
3ea46144c8 fix: 多开实例会出现卡死的情况 #123 2024-11-16 15:46:14 +08:00
msojocs
1d38da3d78 perf: 不对Skyline插件进行初始化(不会弹窗) 2024-11-15 20:25:04 +08:00
msojocs
817c74ea86 update: devtools to v1.06.2409140 2024-10-26 21:27:32 +08:00
msojocs
a33d79f0c3 fix: deb build 2024-09-28 13:48:11 +08:00
msojocs
d9dec28b02 update: devtools to v1.06.2407120 2024-09-28 12:50:37 +08:00
msojocs
1e637f3969 fix: 视频无法播放的问题(#118) 2024-09-28 11:34:11 +08:00
msojocs
98cbf7202e docs: 更新docker方式说明 2024-08-10 16:13:23 +08:00
msojocs
34c27f5d34 feat: build with docker 2024-08-10 15:12:13 +08:00
msojocs
3d941dbe23 fix: ci command 2024-08-10 10:49:36 +08:00
msojocs
4c591f266a update: compiler(Linux) v0.1.1 #115 2024-08-10 10:48:47 +08:00
msojocs
f41bffd96a docs: 赞赏 2024-07-24 17:26:28 +08:00
msojocs
285d29c48f update: compiler(Linux) v0.1.0 2024-07-13 22:03:58 +08:00
msojocs
d581d5aa8b fix: mock 面板按钮点击无反应 #113 2024-07-13 16:28:44 +08:00
msojocs
d4b8412f98
fix: ci (#111) 2024-07-07 17:04:48 +08:00
msojocs
c5a0c09738 update: devtools to v1.06.2405020 2024-07-07 16:36:18 +08:00
msojocs
d5b5e5a977 perf: 优化构建相关命令 2024-05-03 12:08:54 +08:00
msojocs
60e77b0df0 update: devtools to v1.06.2402040 2024-05-03 10:58:43 +08:00
msojocs
afb354792d fix: build for tar appimage 2024-01-03 11:04:42 +08:00
msojocs
ac06e4ad9c docs: readme 2024-01-02 20:49:16 +08:00
msojocs
f7191c2280 fix: cli for Appimage 2024-01-02 10:45:32 +08:00
msojocs
4354a28fe5 update: devtools to v1.06.2310080 2023-12-30 10:29:13 +08:00
msojocs
7fa50693a7 fix: AppImage的cli使用会闪退 #103 2023-12-29 22:33:29 +08:00
msojocs
57ccd51771 update: compiler(Linux) v0.0.7 #102 2023-12-24 16:10:26 +08:00
msojocs
041d451488 update: compiler(Linux) v0.0.6 2023-11-10 20:19:11 +08:00
msojocs
8404792579
Merge pull request #95 from tcstory/fix/update-documentation
fix: fix documentation error
2023-10-17 17:25:19 +08:00
tcstory
4a25d2704b fix: fix documentation error 2023-10-17 17:23:23 +08:00
msojocs
b9874782f9 update: devtools to v1.06.2308310 2023-09-30 12:55:26 +08:00
msojocs
386900ccf5 update: compiler(Linux) v0.0.5 2023-09-23 23:19:07 +08:00
msojocs
b53b420a0c docs: issue template 2023-09-17 01:37:25 +08:00
msojocs
3902faa429 remove: wine 2023-09-09 13:17:00 +08:00
msojocs
bec0771df6 update: devtools to v1.06.2307260 2023-09-09 13:14:47 +08:00
msojocs
af247207d4 fix: 修复终端无法启动的问题 2023-09-05 14:19:59 +08:00
msojocs
96360cb0d4 update: compiler version to v0.0.4 2023-09-04 17:31:54 +08:00
msojocs
199b994991 refactor: replace compiler to linux 2023-08-28 13:30:36 +08:00
msojocs
f4c6d6cc5f docs: changelog 2023-06-04 11:17:47 +08:00
msojocs
006b61bb0f update: devtools to v1.06.2306020 2023-06-03 22:26:35 +08:00
msojocs
7a302f6c12 perf: remove snap 2023-06-03 17:09:45 +08:00
msojocs
baf4206157 perf: remove flatpak 2023-06-03 17:03:09 +08:00
msojocs
a556ded5f7 fix: build 2023-06-03 16:57:32 +08:00
fdxkqlsorf
3ddeba5923 ci: comment snap & arch 2023-05-23 21:42:19 +08:00
msojocs
70c44ccb8c update: devtools to v1.06.2301160 2023-05-21 22:33:25 +08:00
msojocs
035ffe756f fix: zst package lost compiler #76 2023-01-23 16:39:32 +08:00
msojocs
ff3f815e9e update: devtools to v1.06.2301040 2023-01-21 11:46:19 +08:00
msojocs
277c1bde14 fix: failed to build for arch,snap 2023-01-21 11:07:16 +08:00
msojocs
1d169d995a perf: npm缓存处理 2023-01-21 10:45:19 +08:00
msojocs
78170a663e feat: step 2023-01-19 15:22:16 +08:00
msojocs
0447f18b42 perf: 图标安装方式变更为shell 2023-01-17 22:42:20 +08:00
msojocs
43cea86b7a fix: workflows 2023-01-17 21:23:05 +08:00
msojocs
cc93ba32a5 fix: compiler lost #74 2023-01-17 20:47:53 +08:00
msojocs
7ee822f568 update: devtools to v1.06.2209070 2022-09-09 22:09:55 +08:00
msojocs
7e70819697 update: devtools to v1.06.2208010 2022-09-04 10:49:20 +08:00
msojocs
e10ad2ff9d docs: 赞赏支持 2022-09-03 23:07:22 +08:00
msojocs
701efb0a9f update: compiler 2022-09-03 21:59:23 +08:00
msojocs
e3a12f710f feat: build for wine 2022-08-31 22:29:48 +08:00
msojocs
3f20e31df1 fix: workflows 2022-08-29 20:54:52 +08:00
msojocs
9b4935ac10 fix: 自动更新窗口无法关闭 #66 2022-08-28 20:49:12 +08:00
msojocs
89fe4a2375 update: flatpak 2022-07-23 23:23:59 +08:00
msojocs
b351a8945c update: devtools to v1.06.2207210 2022-07-23 23:05:22 +08:00
msojocs
5ec4cbc186 docs: 更新赞赏名单 2022-07-17 17:43:24 +08:00
msojocs
8b345edb66 docs: readme 捐赠信息 2022-07-02 08:43:42 +08:00
msojocs
ec2e620e9e docs: readme & changelog 2022-06-15 22:09:26 +08:00
msojocs
4764553ecb fix: icons 2022-06-15 15:54:17 +08:00
msojocs
331e650b44 fix: flatpak 2022-06-13 21:02:10 +08:00
msojocs
48dc6497d6 update: flatpak 2022-06-13 20:24:15 +08:00
msojocs
089835db02 devtools: update to v1.06.2206090 2022-06-13 18:48:27 +08:00
msojocs
5a1851d310 fix: 桌面图标可能不显示的问题 2022-06-10 10:30:13 +08:00
msojocs
582d296cf9 perf: 默认构建纯 Linux 版本 2022-06-06 20:20:55 +08:00
msojocs
75a7ac47a1 devtools: update to v1.06.2206020 2022-06-03 15:08:32 +08:00
msojocs
5f1bd122d7 docs: 更正克隆命令&赞赏名单 2022-05-29 16:38:26 +08:00
msojocs
361ac3a1ba docs: 跟进赞赏名单 2022-05-23 10:53:26 +08:00
msojocs
b0a93084aa build: 更换github镜像 2022-05-14 20:11:47 +08:00
msojocs
a83be132e2 fix: cli使用不正常
cli无法打开开发工具的问题
Refs: #54
2022-05-11 20:29:29 +08:00
msojocs
1d3352d71d build: 更新编译器
修正无法单独编译一个wxml文件的问题

Refs: 使用小程序编译js报错的问题 #53
2022-05-11 10:24:33 +08:00
msojocs
ad2403378d fix: vscode-ripgrep 2022-05-10 21:35:04 +08:00
msojocs
7fd94d143e build: 更新编译器 2022-05-10 20:44:57 +08:00
msojocs
4c3214e4e7
Merge pull request #52 from msojocs/51-fix-vscode-ripgrep
fix vscode ripgrep
2022-05-10 20:18:34 +08:00
msojocs
7db1b17e35 fix: 优化构建脚本 2022-05-10 19:44:57 +08:00
msojocs
a37cb16a41 fix: vscode-ripgrep #51 2022-05-10 18:30:22 +08:00
msojocs
6c4251e657 fix: failed to build snap in actions 2022-05-05 11:03:43 +08:00
msojocs
fd12934be2 fix: snap build 2022-05-04 22:43:30 +08:00
msojocs
dca9f5a74d fix: permission 2022-05-04 14:23:43 +08:00
msojocs
2a4ba5c9e7 fix: actions for submodule 2022-05-04 13:51:00 +08:00
msojocs
fbb16cd24b feat: replace compiler as submodule 2022-05-04 11:08:04 +08:00
msojocs
9549385d20 update: readme 2022-05-04 11:04:26 +08:00
msojocs
474efb2863 fix: failed to build deb package 2022-04-30 23:15:01 +08:00
msojocs
64a6a2097e test: 整理测试用例 2022-04-30 15:25:44 +08:00
msojocs
35486b1ded docs: add online store 2022-04-29 10:09:51 +08:00
msojocs
99bf79ae66 docs: 更新 issue 模板 & readme 2022-04-28 16:48:06 +08:00
msojocs
bd74d566f3 update: hooks & changelog 2022-04-26 19:44:19 +08:00
msojocs
8cc9f1b5e7 update: wcc compiler 2022-04-26 13:30:31 +08:00
msojocs
49d9077c66 update: devtools 1.05.2204250 2022-04-26 13:30:06 +08:00
msojocs
5ce602a8b7
Merge pull request #46 from msojocs/45-snap-version
snap跟进更新
2022-04-26 11:33:26 +08:00
msojocs
cb8d85eca2 update: changelog & snap version 2022-04-26 11:19:44 +08:00
msojocs
069f18556d update: 动态替换core中的wcc,wcsc return表达式
使用正则匹配,最大化兼容可能发生的函数名变更
2022-04-26 11:14:44 +08:00
msojocs
0014eac997 update: check version of snap 2022-04-25 19:09:41 +08:00
msojocs
6ca62fe4c8
Update release.yml 2022-04-25 14:24:26 +08:00
msojocs
0e50490049 update: snap version data
feat: snap build action
2022-04-25 13:14:43 +08:00
msojocs
8c02f7a13c feat: 项目加入hook
update: snap版本号跟进
2022-04-25 11:35:58 +08:00
msojocs
943bb8017f update: changelog icons readme 2022-04-25 11:08:12 +08:00
msojocs
0a23c8b0b7
Merge pull request #44 from msojocs/43-compiler-for-template
feat: wcc,wcsc node模块懒加载template解析支持
2022-04-24 22:46:39 +08:00
msojocs
2c88d521f0 feat: wcc,wcsc node模块懒加载template解析支持
feat: wcc,wcsc node模块懒加载cut参数支持
2022-04-24 22:13:41 +08:00
msojocs
8acaef6675 update: deb changelog 2022-04-24 15:54:28 +08:00
msojocs
7ee2b2818d feat: wcc,wcsc编译器template解析支持 2022-04-24 11:24:22 +08:00
msojocs
c9fcf1d8c8 update: wcc, wcsc 2022-04-23 22:16:07 +08:00
msojocs
a8c772b9a0 update: wcc node module
fix: replace of wcc linux version
2022-04-23 20:25:55 +08:00
msojocs
22b579ec5e fix: wcc, wcsc node跟进结构
跟进1.05.2204180版本的wcc、wcsc编译器变更 #41
2022-04-22 21:15:24 +08:00
msojocs
05d5494835 update: devtools 1.05.2204180 2022-04-22 19:47:57 +08:00
200 changed files with 1933 additions and 81796 deletions

41
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,41 @@
---
name: 报告Bug
about: 如果阁下提交的 `issue` 属于bug但没有按模板提交那么将会被忽略或删除
title: ''
labels: bug
assignees: ''
---
**预先准备**
1. 删除 `~/.config/wechat-devtools` 目录,重新打开项目(若发布 `issue` 即默认阁下执行了此操作且问题没有解决);
2. HelloWorld是否正常登录状态新建默认项目,执行复现步骤):正常/不正常
3. ***注意如果你的问题是编译器错误那么请提供可复现的demo否则会被直接关闭。***
**问题描述**
<!-- 请对问题做一个简单描述。 -->
**问题复现**
<!-- 复现问题需要进行的操作: -->
1. 打开项目
2. 点击 '....'
3. 看到问题
**期望的效果**
<!-- 经过上述操作你希望得到的结果. -->
**截屏**
<!-- 添加截图图片有助于解释您的问题,请尽量将整个开发工具都涵括在截图在(复制图片后直接粘贴将自动上传图片)。 -->
**版本信息 (这是必要的):**
- OS: e.g. manjaro
- Package: e.g. xxx_wine.tar.gz
- Wine Version: e.g. 7 可选
**代码片段**
<!-- 提供代码片段对维护者定位与修复问题有极大帮助;
若阁下不能提供,且维护者不能复现问题,那么阁下的`issue`将被搁置或者关闭。
[查看创建代码片段的教程](https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html) -->
**额外的信息**
<!-- 一些关于此问题的额外信息。 -->

View File

@ -1,40 +0,0 @@
---
name: 报告Bug
about: 如果阁下提交的`issue`属于bug但没有按模板提交那么将会被忽略或删除
title: ''
labels: bug
assignees: ''
---
**预先准备**
1. 删除`~/.config/wechat-devtools`目录,重新打开项目(若发布`issue`即默认阁下执行了此操作且问题没有解决);
2. HelloWorld是否正常登录状态新建默认项目,执行复现步骤):正常/不正常
**问题描述**
请对问题做一个简单描述。
**问题复现**
复现问题需要进行的操作:
1. 打开项目
2. 点击 '....'
3. 看到问题
**期望的效果**
经过上述操作你希望得到的结果.
**截屏**
添加截图图片有助于解释您的问题,请尽量将整个开发工具都涵括在截图在(复制图片后直接粘贴将自动上传图片)。
**版本信息 (这是必要的):**
- OS: e.g. manjaro
- Package: e.g. xxx_wine.tar.gz
- Wine Version: e.g. 7 可选
**代码片段**
提供代码片段对维护者定位与修复问题有极大帮助;
若阁下不能提供,且维护者不能复现问题,那么阁下的`issue`将被搁置或者关闭。
[查看创建代码片段的教程](https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
**额外的信息**
一些关于此问题的额外信息。

66
.github/workflows/build-deb.yml vendored Normal file
View File

@ -0,0 +1,66 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Build DEB Package
on:
workflow_dispatch:
workflow_call:
jobs:
build-deb:
name: Build DEB Package
runs-on: ubuntu-latest
strategy:
matrix:
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
# https://stackoverflow.com/questions/61096521/how-to-use-gpg-key-in-github-actions
# gpg --generate-key
# gpg --export-secret-keys YOUR_ID_HERE | base64 > private.key
- name: Configure GPG Key
run: |
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
gpg --list-secret-keys jiyecafe@gmail.com
env:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
- name: Prepare
run: |
sudo apt update -y
sudo apt-get install -y build-essential fakeroot devscripts debhelper # debmake lintian pbuilder
- name: Build Deb Package
run: |
export BUILD_VERSION=${{ steps.tag.outputs.tag }}
ls -l
mkdir -p tmp/build
export WINE=false
tools/build-prepare.sh
env WINE=false tools/build-deepin.sh ${{ steps.tag.outputs.tag }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: wechat-devtools-deb-${{ matrix.ARCH }}.build
path: tmp/build

88
.github/workflows/build-src.yml vendored Normal file
View File

@ -0,0 +1,88 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Build Base Packages
on:
workflow_dispatch:
workflow_call:
jobs:
build-src:
name: Build Base Packages
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
- name: Prepare
run: |
echo "$UID, $GID"
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: Build
run: |
export ACTION_MODE=true
ls -l
export WINE=false
tools/build-with-docker.sh
- name: Compress Resources
run: |
ls -l
mkdir -p tmp/src
rm -rf nwjs/node nwjs/node.exe
cp node/bin/node nwjs/node
cd nwjs && ln -s node node.exe
cd ..
tar -zcf tmp/src/src-linux.tar.gz bin nwjs package.nw tools
- name: Compress nodegit
run: |
ls -l
mkdir -p tmp/build
cp -r package.nw/node_modules/nodegit .
tar -zcf nodegit.tar.gz nodegit
mv nodegit.tar.gz tmp/build
cd tmp/build
ls -l
- name: View Directory
run: |
ls -l
- name: Upload src artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.src
path: tmp/src
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build

66
.github/workflows/build-tar.yml vendored Normal file
View File

@ -0,0 +1,66 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Build tar.gz AppImage
on:
workflow_dispatch:
workflow_call:
jobs:
build-tar:
name: Build tar.gz AppImage
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Inspect directory after downloading artifacts
run: |
ls -alFR wechat-devtools-*.build
ls -alFR wechat-devtools-*.src
- name: Prepare
run: |
sudo apt install -y fuse
echo "$UID, $GID"
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: Build
run: |
export WINE=false
export ACTION_MODE=true
# tar.gz AppImage
ls -l
mkdir -p tmp/build
tools/build-prepare.sh
tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }}
- name: View Directory
run: |
ls -l
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: wechat-devtools-simple-${{ matrix.ARCH }}.build
path: tmp/build

View File

@ -1,46 +0,0 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Flatpak Verify
on:
release:
types: [published]
push:
tags:
- v*
branches: [ master, dev]
pull_request:
branches: [ master ]
# # Allows you to run this workflow manually from the Actions tab
# workflow_dispatch:
jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:freedesktop-21.08
options: --privileged
strategy:
matrix:
arch: [x86_64]
# Don't fail the whole workflow if one architecture fails
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: Test
run: |
cat /etc/issue
yum install -y p7zip p7zip-plugins
7z
# Docker is required by the docker/setup-qemu-action which enables emulation
- name: Install deps
run: |
dnf -y install docker
- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4
with:
bundle: wechat-devtools.flatpak
manifest-path: io.github.msojocs.wechat-devtools.yml
cache-key: flatpak-builder-${{ github.sha }}
arch: ${{ matrix.arch }}

View File

@ -1,7 +1,7 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Build Packages
name: Build Packages Linux
on:
release:
@ -9,7 +9,11 @@ on:
push:
tags:
- v*
branches: [ master, dev]
branches: [ master, dev, ci, skyline]
paths-ignore:
- 'README.MD'
- 'CHANGELOG.MD'
- 'docs/**'
pull_request:
branches: [ master ]
# # Allows you to run this workflow manually from the Actions tab
@ -17,328 +21,29 @@ on:
jobs:
build-src:
name: Build Base Packages
runs-on: ubuntu-latest
strategy:
matrix:
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
- name: Test
run: |
echo "$UID, $GID"
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: Build
run: |
export ACTION_MODE=true
export DOCKER_UID=$UID
export DOCKER_GID=$GID
ls -l
export NO_WINE=false
docker-compose up
- name: Compress Resources
run: |
ls -l
mkdir -p tmp/src
rm -rf nwjs/node nwjs/node.exe
cp node/bin/node nwjs/node
cd nwjs && ln -s node node.exe
cd ..
tar -zcf tmp/src/src-wine.tar.gz bin nwjs package.nw tools
export NO_WINE=true
"tools/fix-core.sh"
"tools/fix-other.sh"
tar -zcf tmp/src/src-no-wine.tar.gz bin nwjs package.nw tools
- name: Compress nodegit compiler
run: |
ls -l
mkdir -p tmp/build
cp -r package.nw/node_modules/nodegit .
sudo rm -rf compiler/test
tar -zcf compiler.tar.gz compiler
tar -zcf nodegit.tar.gz nodegit
mv nodegit.tar.gz tmp/build
mv compiler.tar.gz tmp/build
cd tmp/build
ls -l
- name: View Directory
run: |
ls -l
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.src
path: tmp/src
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build
uses: ./.github/workflows/build-src.yml
secrets: inherit
build-tar:
name: Build tar.gz AppImage
needs:
- build-src
runs-on: ubuntu-latest
strategy:
matrix:
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Test
run: |
echo "$UID, $GID"
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: Build
run: |
export NO_WINE=false
export ACTION_MODE=true
# tar.gz AppImage
ls -l
mkdir -p tmp/build
tools/build-prepare.sh
tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }}
- name: View Directory
run: |
ls -l
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build
# build-deb:
# name: Build Deb Package
# needs:
# - build-src
# runs-on: ubuntu-18.04
# strategy:
# matrix:
# ARCH: ['x86_64']
# # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
# steps:
# - uses: actions/checkout@v2
# - name: Download artifacts
# uses: actions/download-artifact@v2
# - name: Generate TAG
# id: Tag
# run: |
# tag='continuous'
# name='Continuous Build'
# if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
# tag='${{ github.ref_name }}'
# name='${{ github.ref_name }}'
# fi
# echo "tag result: $tag - $name"
# echo "::set-output name=tag::$tag"
# echo "::set-output name=name::$name"
# - name: Build Deb Package
# run: |
# export BUILD_VERSION=${{ steps.tag.outputs.tag }}
# ls -l
# mkdir -p tmp/build
# tools/build-prepare.sh
# tools/build-deb.sh ${{ steps.tag.outputs.tag }}
# export NO_WINE=true
# tools/build-prepare.sh
# tools/build-deb.sh ${{ steps.tag.outputs.tag }}
# - name: Upload artifact
# uses: actions/upload-artifact@v2.3.1
# with:
# # Artifact name
# name: wechat-devtools-${{ matrix.ARCH }}.build
# path: tmp/build
uses: ./.github/workflows/build-tar.yml
secrets: inherit
build-deb:
name: Build DEB Package
needs:
- build-src
runs-on: ubuntu-18.04
strategy:
matrix:
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
# https://stackoverflow.com/questions/61096521/how-to-use-gpg-key-in-github-actions
- name: Configure GPG Key
run: |
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
env:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
- name: Build Deb Package
run: |
sudo apt-get install -y build-essential fakeroot devscripts git git-buildpackage debhelper debmake lintian pbuilder
export BUILD_VERSION=${{ steps.tag.outputs.tag }}
ls -l
mkdir -p tmp/build
tools/build-prepare.sh
env NO_WINE=false tools/build-deepin.sh ${{ steps.tag.outputs.tag }}
export NO_WINE=true
tools/build-prepare.sh
env NO_WINE=true tools/build-deepin.sh ${{ steps.tag.outputs.tag }}
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build
build-arch:
name: Build ArchLinux Package
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
node-version: [16.x]
ARCH: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Prepare
run: |
npm install node-gyp nw-gyp npm -g
node-gyp install
cat /etc/passwd
- name: Generate TAG
id: Tag
run: |
tag='continuous'
name='Continuous Build'
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then
tag='${{ github.ref_name }}'
name='${{ github.ref_name }}'
fi
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: Build ArchLinux Package
uses: countstarlight/arch-makepkg-action@master
env:
BUILD_VERSION: ${{ steps.tag.outputs.tag }}
with:
repos: >
archlinuxcn=https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
before: "tools/build-aur.sh && sudo pacman -S --noconfirm archlinuxcn-keyring"
packages: >
gconf
p7zip
libxkbfile
python2
openssl
gcc
make
libssh2
krb5
scripts: "cd tmp/AUR && makepkg && ls -l && cd ../../"
- name: Fix Permissions
run: |
sudo chmod -R 0777 tmp
mkdir -p tmp/build
mv tmp/AUR/*.pkg.* tmp/build
cd tmp/build
for file in `ls *.pkg.*`;do mv $file `echo $file|sed 's/:/-/g'`;done;
ls -l
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
# Artifact name
name: wechat-devtools-${{ matrix.ARCH }}.build
path: tmp/build
uses: ./.github/workflows/build-deb.yml
secrets: inherit
upload:
name: Create release and upload artifacts
needs:
- build-tar
- build-deb
# - build-deepin
- build-arch
# - build-snap
# - build-arch
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
- name: Inspect directory after downloading artifacts
run: ls -alFR
@ -360,9 +65,10 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sudo apt install -y fuse
wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage
chmod +x pyuploadtool-x86_64.AppImage
./pyuploadtool-x86_64.AppImage **build/WeChat*.AppImage **build/*.tar.gz **build/*.deb **build/*.pkg.*
./pyuploadtool-x86_64.AppImage **build/WeChat*.AppImage **build/*.tar.gz **build/*.deb
- name: Release
uses: softprops/action-gh-release@v1
@ -376,4 +82,3 @@ jobs:
**build/WeChat*.AppImage
**build/*.tar.gz
**build/*.deb
**build/*.pkg.*

1
.gitignore vendored
View File

@ -19,4 +19,3 @@ temp.sh
.flatpak-builder
build-dir
__pycache__
*.txt

6
.vscode/launch.json vendored
View File

@ -8,8 +8,8 @@
"type": "nwjs",
"request": "launch",
"name": "Launch NWjs",
"nwjsVersion": "0.49.3",
"webRoot": "${workspaceFolder}/compiler/test/package.nw",
"nwjsVersion": "0.55.0",
"webRoot": "${workspaceFolder}/package.nw",
"reloadAfterAttached": true,
"runtimeArgs": [
// "--load-extension=${workspaceFolder}/tmp/data/WeappPlugin",
@ -21,7 +21,7 @@
"LANG": "zh_CN.UTF-8"
},
"userDataDir": false,
"runtimeExecutable": "${workspaceFolder}/cache/wechat_devtools_1.05.2203070_x64/wechatdevtools.exe"
"runtimeExecutable": "${workspaceFolder}/nwjs/nw"
}
]
}

261
CHANGELOG.MD Normal file
View File

@ -0,0 +1,261 @@
# 1.06.2504010-3 / 2025-07-
- refactor: 重构主题监听处理方案
# 1.06.2504010-2 / 2025-07-15
- fix: cli使用异常。#147
# 1.06.2504010-1 / 2025-07-05
- fix: 更新弹窗无法关闭。
- update: devtools to v1.06.2504010
# 1.06.2503290-3 / 2025-05-23
- update: compiler(Linux) v0.1.5
- fix: worker无法使用 #145
# 1.06.2503290-2 / 2025-05-02
- update: compiler(Linux) v0.1.4
# 1.06.2503290-1 / 2025-04-30
- update: node v16.11.0 (解决codebuddy无法使用。)
- perf: 替换float-pigment。
- update: devtools to v1.06.2503290
# 1.06.2412050-2 / 2025-02-17
- update: compiler(Linux) v0.1.3
# 1.06.2412050-1 / 2025-02-16
- update: devtools to v1.06.2412050
- update: compiler(Linux) v0.1.2
# 1.06.2412040-1 / 2025-01-16
- update: devtools to v1.06.2412040
# 1.06.2409140-3 / 2024-11-16
- fix: 多开实例会出现卡死的情况
# 1.06.2409140-2 / 2024-11-15
- perf: 不对Skyline插件进行初始化不会弹窗
# 1.06.2409140-1 / 2024-10-26
- update: devtools to v1.06.2409140
# 1.06.2407120-1 / 2024-09-28
- update: devtools to v1.06.2407120
# 1.06.2405020-4 / 2024-09-28
- fix: 视频无法播放的问题(#118
# 1.06.2405020-3 / 2024-08-10
- update: compiler(Linux) v0.1.1
# 1.06.2405020-2 / 2024-07-13
- fix: mock 面板按钮点击无反应
- update: compiler(Linux) v0.1.0
# 1.06.2405020-1 / 2024-07-07
- update: devtools to v1.06.2405020
- update: compiler(Linux) v0.0.9
# 1.06.2402040-1 / 2024-05-03
- update: devtools to v1.06.2402040
# 1.06.2310080-2 / 2024-01-02
- fix: AppImage的cli使用会闪退
# 1.06.2310080-1 / 2023-12-30
- fix: AppImage的cli使用会闪退
- update: devtools to v1.06.2310080
# 1.06.2308310-3 / 2023-12-24
- update: compiler(Linux) v0.0.7
# 1.06.2308310-2 / 2023-11-10
- update: compiler(Linux) v0.0.6
# 1.06.2308310-1 / 2023-09-30
- update: devtools to v1.06.2308310
# 1.06.2307260-2 / 2023-09-23
- update: compiler(Linux) v0.0.5
# 1.06.2307260-1 / 2023-09-09
- update: node-pty to v1.0.0
- update: devtools to v1.06.2307260
- update: compiler(Linux) v0.0.4
- dprecated: wine version
# 1.06.2306020-1 / 2023-06-04
- update: devtools to v1.06.2306020
# 1.06.2301040-1 / 2023-01-21
- update: devtools to v1.06.2301040
# 1.06.2209070-1 / 2022-09-09
- update: devtools to v1.06.2209070
# 1.06.2208010-1 / 2022-09-04
- update: devtools to v1.06.2208010
# 1.06.2207210-1 / 2022-09-03
- update: devtools to v1.06.2207210
- update: compiler
# 1.06.2206090-2 / 2022-06-15
- fix: deepin icon
# 1.06.2206090-1 / 2022-06-13
- update: devtools to v1.06.2206090
# 1.06.2206020-1 / 2022-06-03
- update: devtools to v1.06.2206020
# 1.05.2204250-2 / 2022-05-11
- fix: 修复wcc编译器不支持单文件编译的bug感谢 @2715851270 反馈)
- fix: 修复cli异常
# 1.05.2204250-1 / 2022-04-26
- update: devtools 1.05.2204250
- update: 跟进wcc编译器变更
# 1.05.2204180-2 / 2022-04-26
- feat: wcc,wcsc node模块懒加载template解析支持
- feat: wcc,wcsc node模块懒加载cut参数支持
# 1.05.2204180-1 / 2022-04-24
- update: devtools 1.05.2204180
- update: 跟进更新 wcc,wcsc node模块逻辑
- feat: wcc,wcsc编译器template解析支持
# 1.05.2203070-10 / 2022-04-22
- fix: 修正命令行入口
- fix: gsettings子进程未退出转为孤儿进程
- update: 优化主题监听
# 1.05.2203070-8 / 2022-04-10
- fix: 国内网络vscode-ripgrep安装失败的问题
- fix: 内部的更新检查界面无法正常使用(这个更新用处不大,仅用于让维护者知道存在更新)
- fix: 修复可能出现扩展宿主意外终止的问题
- feat: 主题深浅跟随系统变化感谢icepie的参与
- update: 更新nwjs与nodejs
# 1.05.2203070-7 / 2022-03-19
- fix: cli
- 兼容ubuntu16.04
# 1.05.2203070-6 / 2022-03-19
- feat: wcc node模块支持wxml引用
- feat: wcc node模块支持自定义函数名
# 1.05.2203070-5 / 2022-03-18
- fix: 增强wcsc编译器
# 1.05.2203070-4 / 2022-03-12
- add: 增加wine版本的deb包
# 1.05.2203070-3 / 2022-03-11
- fix: 修复wcc常量操作问题
- fix: 修复deb打包细节问题
# 1.05.2203070-2 / 2022-03-10
- feat: wcc编译器懒加载支持wxml引用
# 1.05.2203070-1 / 2022-03-08
- upgrade: devtools 1.05.2203070
- fix: 编译器异常信息显示不完全
# 1.05.2203030-2 / 2022-03-07
- refactor: 规范版本号
# 0.24 / 2022-03-05
- fix: 编译异常的问题
- 处理一些包相关细节
# 0.23 / 2022-03-05
- upgrade devtools to 1.05.2203030
# 0.22 / 2022-03-03
- refactor: 使用低版本环境构建deb,提升兼容性
# 0.21 / 2022-03-02
- add: deb aur 打包格式
# 0.20 / 2022-02-28
- fix: node模块中编译器的可执行权限
# 0.19 / 2022-02-28
- 过渡版本,存在问题
# 0.16 / 2022-02-24
- feat: wcc编译器路径异常
# 0.15 / 2022-02-23
- feat: wcc编译器支持`debugWXS`选项
# 0.14 / 2022-02-22
- feat: 正式添加node版本的编译器
# 0.13 / 2022-02-20
- feat: wine弱依赖版本
# 0.12 / 2022-02-16
- fix: 版本管理中的“在终端打开”不可用
# 0.11 / 2022-02-15
- add: appimage打包版本
# 0.10 / 2022-02-06
- fix: 二维码真机调试不可用
# 0.9 / 2022-02-05
- fix: 修复Webview组件涉及代码分析插件商店
# 0.8 / 2022-02-04
- fix: 云开发控制台不可用
# 0.7 / 2022-02-04
- add: 重新使用windows的编译器
# 0.6 / 2022-02-03
- fix: 可视化功能不可用
# 0.5 / 2022-02-02
- fix: 版本管理
- feat: node版本编译器
- remove: windows的编译器
# 0.4 / 2022-01-30
- fix: 创建终端时会崩溃的问题
# 0.3 / 2022-01-28
- 适配nwjs版本至0.53.1
# 0.2 / 2022-01-27
体验版

218
README.MD Normal file
View File

@ -0,0 +1,218 @@
<div align="center">
<img src="./res/icons/512x512.png" height="100px" width="100px"/>
<h3>微信开发者工具 Linux版</h3>
<br>
----
[![Node.js CI](https://github.com/msojocs/wechat-devtools-linux/actions/workflows/release.yml/badge.svg)](https://github.com/msojocs/wechat-devtools-linux/actions/workflows/release.yml)
[![wechat-tools](https://img.shields.io/badge/wechat--devtools-1.06.2503290-blue)](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
[![nwjs](https://img.shields.io/badge/nwjs-0.55.0-green)](https://nwjs.io/downloads/)
[![node](https://img.shields.io/badge/node-16.11.0-orange)](https://nodejs.org/en/)
这是微信开发者工具 Linux版
<br>
</div>
# 项目说明
本项目是一个完整的搭建Linux下可用的“微信开发者工具”的脚本和工具集
用于在Linux下的GNOME桌面上搭建可以持续更新和使用的“微信开发者工具”。
本项目修改自https://github.com/dragonation/wechat-devtools/
# 项目地址
* https://github.com/msojocs/wechat-web-devtools-linux
# 进度
当前工具可以在Linux上构筑最新版 `1.06.2503290`支持CLI模式。
另现在已经可以直接在设置界面里面修改字体,手工输入字体名称就可以。
# 功能测试记录
[测试记录](docs/Features.MD)
注意:
此测试仅在修复某项功能时测试通过,并不代表阁下在使用时是正常可用的;因为我没有精力在每个版本发布前进行一次测试。
在阁下遇到任何无法解决的问题时,请新建一个 [issue](https://github.com/msojocs/wechat-web-devtools-linux/issues/new/choose)
# 系统要求
* 基于Linux的桌面系统首选GNOME其他的桌面环境可能会有问题未测试
* CI自动构建的包对 glibc 和 libstdc++ 有一定的版本要求glibc 的版本要求>=2.23libstdc++ 的版本要求>=3.4.21
* ~~如果你下载的是 `wine` 版本,那么你需要安装有 `wine` `wine-binfmt` 支持建议版本在5.0以上,低版本可能会存在有问题~~
# CLI支持
在项目的 `bin` 目录中有 `wechat-devtools-cli` 脚本,是微信开发者工具的命令行支持 的Linux版本。相关资料可以在[微信CLI命令行V2](https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html)上找到。
# 使用方法
1. [在线安装](#在线安装)
2. 可以在本项目的[Release](https://github.com/msojocs/wechat-web-devtools-linux/releases)中,寻找已经构筑好了的软件包,下载使用。
如果`Release`版本存在问题,可以尝试[Continuous](https://github.com/msojocs/wechat-web-devtools-linux/releases/tag/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. 在本地项目目录中执行如下的语句,构建开发者工具:
```
tools/build-with-docker.sh
```
5. 在本地项目目录中执行如下的语句,可以安装应用图标(非必须):
```
./tools/install-desktop-icon-node
```
之后即可通过点击应用图标启动微信开发者工具,也可以运行 `bin/wechat-devtools` 通过命令行启动
## 方法1
由于使用到 `node-gyp` `nw-gyp`,此方法会受 `python`、`node` 版本影响出现一些难以预料的异常(比如使用 `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`](docker/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 支持,使用 cpp 实现模拟官方编译器。[wx-compiler](https://github.com/msojocs/wx-compiler)
# 后续计划
请参考: [处理计划](https://github.com/msojocs/wechat-devtools-linux/projects?type=beta)
# 移植相关
请参考: [移植流程记录](https://github.com/msojocs/wechat-web-devtools-linux/wiki)
# FAQ
请参考: [FAQ](docs/FAQ.MD)
# 界面截图
版本 1.05.2201240
![screenshot 1.03.2006090](res/screenshots/1.05.2201240.png)
版本 1.03.2006090
![screenshot 1.03.2006090](res/screenshots/1.03.2006090.jpg)
版本 1.02.2001191
![screenshot 1.02.2001191](res/screenshots/1.02.2001191.jpg)
# 赞赏
如果这个仓库让你感到舒适可以点个Star或者请这个 ~~菜鸡大学生~~ 打工人喝杯咖啡请尽量带上github昵称
![赞赏码](https://user-images.githubusercontent.com/20937135/154661198-93854dc1-c8ba-4c97-a7ab-9f8de26c0226.png)
# 感谢赞赏支持
时间倒序
| 赞赏人 | 赞赏 | 时间 |
|-------|---------|-----|
| returning | 10.00¥ | 2025-07-12 |
| 👍 | 10.00¥ | 2025-07-10 |
| hanwor | 20.00¥ | 2025-06-17 |
| 。。。 | 10.00¥ | 2025-03-29 |
| SakuraPuare | 20.00¥ | 2025-03-24 |
| [senseab](https://github.com/senseab) | 50.00¥ | 2024-12-21 |
| l | 10.00¥ | 2024-12-08 |
| lcurk0 | 50.00¥ | 2024-11-29 |
| [stvsl](https://github.com/stvsl) | 10.00¥ | 2024-11-26 |
| 仙人柱 | 50.00¥ | 2024-11-20 |
| [cabbage7th](https://github.com/cabbage7th) | 20.00¥ | 2024-10-06 |
| [shao4598](https://github.com/shao4598) | 50.00¥ | 2024-09-24 |
| [OWALabuy](https://github.com/OWALabuy) | 16.66¥ | 2024-08-28 |
| [wangvation](https://github.com/wangvation) | 50.00¥ | 2024-07-16 |
| 孤泉冷月 | 100.00¥ | 2024-07-12 |
| [liushuai05](https://github.com/liushuai05) | 88.00¥ | 2023-12-26 |
| LGTU | 10.00¥ | 2023-11-25 |
| [WRXinYue](https://github.com/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](https://github.com/guanzhengyinqin) | 20.00¥ | 2022-07-14 |
| [nsfoxer](https://github.com/nsfoxer) | 10.00¥ | 2022-06-30 |
| [chiiihc](https://github.com/chiiihc) | 5.00¥ | 2022-06-17 |
| [younland](https://github.com/younland) | 20.00¥ | 2022-06-15 |
| [chiiihc](https://github.com/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](https://github.com/Corybyte) | 5.00¥ | 2022-04-23 |
| [Starrah](https://github.com/Starrah) | 50.00¥ | 2022-04-12 |
| [zyk-miao](https://github.com/zyk-miao) | 5.00¥ | 2022-04-12 |
| [icepie](https://github.com/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¥ | ??? |
# 免责声明
微信开发者工具版权归腾讯公司所有本项目旨在交流学习之用。如有不当之处请联系本人邮箱jiyecafe@gmail.com
## Stargazers over time
[![Stargazers over time](https://starchart.cc/msojocs/wechat-web-devtools-linux.svg)](https://starchart.cc/msojocs/wechat-web-devtools-linux)

View File

@ -37,6 +37,7 @@ clean_cache() {
echo "清理缓存";
rm -rf "$APPDATA/WeappCache";
rm -rf "$APPDATA/WeappVendor";
rm -rf "$DATA_DIR/wechat_devtools"
}
# 检测是否有清除缓存的必要
@ -52,11 +53,11 @@ else
fi;
EXTENSION1="--load-extension=$root_dir/nwjs/package.nw/js/ideplugin"
EXTENSION2=--load-extension=$APPDATA/WeappPlugin
EXTENSION2="--load-extension=$APPDATA/WeappPlugin/inspector"
INSPECTOR1="--custom-devtools-frontend=file://$root_dir/package.nw/js/ideplugin/inspector" # 要加file://指明为本地文件路径
INSPECTOR2="--custom-devtools-frontend=file://$APPDATA/WeappPlugin/inspector/"
USERDATADIR="$APPDATA"
# "$@"参数
LANG=zh_CN.UTF-8
exec "$root_dir/nwjs/nw" $root_dir/package.nw $EXTENSION2 $INSPECTOR1 "$@"
exec "$root_dir/nwjs/nw" $root_dir/package.nw $EXTENSION1 $INSPECTOR1 "$@"

View File

@ -8,12 +8,14 @@ while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symli
done
root_dir="$( cd -P "$( dirname "$SOURCE" )"/.. >/dev/null 2>&1 && pwd )"
cd $root_dir
cd $root_dir/bin
export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs"
export APPDATA="$root_dir/nwjs"
export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH"
export PATH="$root_dir/node/bin:$root_dir/nwjs:$PATH"
# node $root_dir/package.nw/js/common/cli/index.js "$@"
# const t=e.customScriptName?e.$0:o.basename(e.$0),
echo "process.argv[1]='$root_dir/bin/wechat-devtools-cli';require('$root_dir/package.nw/js/common/cli/index.js')" | node - "$@"
node $root_dir/package.nw/js/common/cli/index.js "$@"
if [ ! -z "$APPIMAGE" ];then
# AppImage在程序退出后会删除相关程序文件导致无法启动
tail -f /etc/issue
fi

View File

@ -1,27 +0,0 @@
#!/bin/bash
echo "SNAP 启动"
root_dir=$(cd `dirname $0`/.. && pwd -P)
echo "root_dir: $root_dir"
ls -l "$root_dir"
export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs"
export APPDATA="$SNAP_USER_DATA/.config/wechat_devtools"
export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH"
export USERPROFILE=$SNAP_USER_DATA
ls -l /usr/lib/x86_64-linux-gnu
ls -l /usr/lib
echo -e "\033[46;37m环境变量: \033[0m"
env
# LANG=zh_CN.UTF-8 exec "$DIR"/../nwjs/nw --load-extension="$DIR"/../nwjs/package.nw/js/ideplugin "$@"
EXTENSION1="--load-extension=$SNAP/package.nw/js/ideplugin"
EXTENSION2="--load-extension=$SNAP_USER_DATA/.config/wechat_devtools/WeappPlugin"
INSPECTOR1="--custom-devtools-frontend=file://$SNAP/package.nw/js/ideplugin/inspector" # 要加file://指明为本地文件路径
INSPECTOR2="--custom-devtools-frontend=file://$SNAP_USER_DATA/.config/wechat_devtools/WeappPlugin/inspector/"
USERDATADIR="$SNAP_USER_DATA/.config/wechat_devtools"
# "$@"参数
LANG=zh_CN.UTF-8
"$SNAP/nw" $EXTENSION2 $INSPECTOR1 "$@"

View File

@ -1,104 +0,0 @@
# 1.05.2203070-10 / 2022-04-
- fix: 修正命令行入口
- update: 优化主题监听
# 1.05.2203070-8 / 2022-04-10
- fix: 国内网络vscode-ripgrep安装失败的问题
- fix: 内部的更新检查界面无法正常使用(这个更新用处不大,仅用于让维护者知道存在更新)
- fix: 修复可能出现扩展宿主意外终止的问题
- feat: 主题深浅跟随系统变化感谢icepie的参与
- update: 更新nwjs与nodejs
# 1.05.2203070-7 / 2022-03-19
- fix: cli
- 兼容ubuntu16.04
# 1.05.2203070-6 / 2022-03-19
- feat: wcc node模块支持wxml引用
- feat: wcc node模块支持自定义函数名
# 1.05.2203070-5 / 2022-03-18
- fix: 增强wcsc编译器
# 1.05.2203070-4 / 2022-03-12
- add: 增加wine版本的deb包
# 1.05.2203070-3 / 2022-03-11
- fix: 修复wcc常量操作问题
- fix: 修复deb打包细节问题
# 1.05.2203070-2 / 2022-03-10
- feat: wcc编译器懒加载支持wxml引用
# 1.05.2203070-1 / 2022-03-08
- upgrade: devtools 1.05.2203070
- fix: 编译器异常信息显示不完全
# 1.05.2203030-2 / 2022-03-07
- refactor: 规范版本号
# 0.24 / 2022-03-05
- fix: 编译异常的问题
- 处理一些包相关细节
# 0.23 / 2022-03-05
- upgrade devtools to 1.05.2203030
# 0.22 / 2022-03-03
- refactor: 使用低版本环境构建deb,提升兼容性
# 0.21 / 2022-03-02
- add: deb aur 打包格式
# 0.20 / 2022-02-28
- fix: node模块中编译器的可执行权限
# 0.19 / 2022-02-28
- 过渡版本,存在问题
# 0.16 / 2022-02-24
- feat: wcc编译器路径异常
# 0.15 / 2022-02-23
- feat: wcc编译器支持`debugWXS`选项
# 0.14 / 2022-02-22
- feat: 正式添加node版本的编译器
# 0.13 / 2022-02-20
- feat: wine弱依赖版本
# 0.12 / 2022-02-16
- fix: 版本管理中的“在终端打开”不可用
# 0.11 / 2022-02-15
- add: appimage打包版本
# 0.10 / 2022-02-06
- fix: 二维码真机调试不可用
# 0.9 / 2022-02-05
- fix: 修复Webview组件涉及代码分析插件商店
# 0.8 / 2022-02-04
- fix: 云开发控制台不可用
# 0.7 / 2022-02-04
- add: 重新使用windows的编译器
# 0.6 / 2022-02-03
- fix: 可视化功能不可用
# 0.5 / 2022-02-02
- fix: 版本管理
- feat: node版本编译器
- remove: windows的编译器
# 0.4 / 2022-01-30
- fix: 创建终端时会崩溃的问题
# 0.3 / 2022-01-28
- 适配nwjs版本至0.53.1
# 0.2 / 2022-01-27
体验版

View File

@ -1,84 +0,0 @@
const path = require('path')
const fs = require('fs')
const crypto = require('crypto')
const os = require('os')
const child_process = require('child_process')
let platform = process.argv[2]
let exeList = []
const macExeList = [
'wcc',
'wcsc',
'wcc.bin',
'wcsc.bin'
]
const winExeList = [
'wcc.exe',
'wcsc.exe'
]
if(platform === 'darwin') {
exeList = macExeList;
} else if(platform === 'win32') {
exeList= winExeList;
} else {
exeList = macExeList.concat(winExeList)
}
function generate(vendorPath) {
let dirList = fs.readdirSync(vendorPath)
let libs = {}
dirList.forEach((item) => {
if (item == 'dev' || item == 'quickstart' || item == 'beta') {
return
}
let itemPath = path.join(vendorPath, item)
let stat = fs.statSync(itemPath)
if (stat.isDirectory()) {
let fileList = fs.readdirSync(itemPath)
let md5Info = {}
fileList.forEach((file) => {
if (fs.statSync(path.join(itemPath, file)).isFile()) {
let fileData = fs.readFileSync(path.join(itemPath, file))
let md5sum = crypto.createHash('md5')
md5sum.update(fileData)
md5Info[file] = md5sum.digest('hex')
}
})
libs[item] = md5Info
}
})
let oldConfig = JSON.parse(fs.readFileSync(path.join(vendorPath, 'config.json'), 'utf8'))
for (var key in oldConfig.libs) {
// libs[key] = Object.assign({}, oldConfig.libs[key], libs[key])
oldConfig.libs[key] = Object.assign({}, oldConfig.libs[key], libs[key])
}
// let newLib = {}
// let keys = Object.keys(libs)
// keys.sort()
// for (var i = 0; i < keys.length; i++) {
// let key = keys[i]
// newLib[key] = libs[key]
// }
// 更新
oldConfig.configVersion = Date.now()
for (let key in exeList) {
let file = exeList[key]
let fileData = fs.readFileSync(path.join(vendorPath, file))
let md5sum = crypto.createHash('md5')
md5sum.update(fileData)
oldConfig[file] = md5sum.digest('hex')
}
fs.writeFileSync(path.join(vendorPath, 'config.json'), JSON.stringify(oldConfig, null, '\t'))
}
generate(__dirname)

File diff suppressed because one or more lines are too long

View File

@ -1,81 +0,0 @@
#!/usr/bin/env node
// wcsc.exe md5 = "3999c590c57c764b152bc6db3b3288c4"
const version = "20220308";
const { spawn } = require("child_process");
const fs = require("fs");
const path = require("path");
const args = process.argv.slice(2);
const wcscPath = path.resolve(__dirname, "./wcsc.bin");
const DEBUG_OUTPUT = process.env["WX_DEBUG_COMPILER_OUTPUT"];
function encode1(s) {
return encodeURI(s).replace(
/%(u[0-9A-F]{4})|(%[0-9A-F]{2})/gm,
function ($0, $1, $2) {
return ($1 && "\\" + $1.toLowerCase()) || decodeURI($2);
}
);
}
if (args.includes("-ll")) {
const wcsc = spawn(wcscPath, args, {
cwd: process.cwd(),
});
const spwanData = [],
errData = [];
wcsc.stdout.on("data", (e) => {
spwanData.push(e);
});
wcsc.stderr.on("data", (e) => {
errData.push(e);
});
wcsc.on("close", (n) => {
if (0 === n) {
let str = Buffer.concat(spwanData).toString();
DEBUG_OUTPUT &&
fs.writeFileSync(`${DEBUG_OUTPUT}/linux_output.js`, str);
const resultSplit = str.split("=");
const tempObj = {};
for (
let i = 0, total = resultSplit.length;
i < total && resultSplit[i + 1];
i += 2
) {
// a=b ---> a: b
const key = resultSplit[i];
if (key === "version") continue;
tempObj[key] = resultSplit[i + 1].replace(
/[^\\]((\\x[\da-f]{2}|\\u[\da-f]{4})){1,}/g,
function ($0, $1, $2) {
return eval('"' + $0 + '"');
}
);
}
const resultObj = {
common: tempObj.comm,
pageWxss: {},
};
for (const key in tempObj) {
if (key.endsWith(".wxss")) {
resultObj.pageWxss[key] = tempObj[key];
}
}
let result = JSON.stringify(resultObj);
result = result.replace(/\\\\/g, "\\");
process.stdout.write(result);
} else {
const err = Buffer.concat(errData).toString();
DEBUG_OUTPUT &&
fs.writeFileSync(`${DEBUG_OUTPUT}/linux_err.js`, err);
process.stderr.write(err);
process.exitCode = n;
}
});
} else {
const wcsc = spawn(wcscPath, args, {
cwd: process.cwd(),
stdio: "inherit",
});
wcsc.on("close", (code) => {
process.exitCode = code;
});
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
1 wcc node
2 wcc node
3 wcc node
4 wcsc node
5 wcc node
6 wcsc node
7 wcc node

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,18 +0,0 @@
const fs = require('fs')
const path = require('path')
const wcsc_options1 = {"pageCount":34,"files":["./packageComponent/pages/view/view/view.wxss","./packageComponent/pages/view/scroll-view/scroll-view.wxss","./packageComponent/pages/view/swiper/swiper.wxss","./packageComponent/pages/view/movable-view/movable-view.wxss","./packageComponent/pages/view/cover-view/cover-view.wxss","./packageComponent/pages/content/text/text.wxss","./packageComponent/pages/content/icon/icon.wxss","./packageComponent/pages/content/progress/progress.wxss","./packageComponent/pages/content/rich-text/rich-text.wxss","./packageComponent/pages/form/button/button.wxss","./packageComponent/pages/form/checkbox/checkbox.wxss","./packageComponent/pages/form/form/form.wxss","./packageComponent/pages/form/input/input.wxss","./packageComponent/pages/form/label/label.wxss","./packageComponent/pages/form/picker/picker.wxss","./packageComponent/pages/form/picker-view/picker-view.wxss","./packageComponent/pages/form/radio/radio.wxss","./packageComponent/pages/form/slider/slider.wxss","./packageComponent/pages/form/switch/switch.wxss","./packageComponent/pages/form/textarea/textarea.wxss","./packageComponent/pages/form/editor/editor.wxss","./packageComponent/pages/nav/navigator/navigator.wxss","./packageComponent/pages/media/image/image.wxss","./packageComponent/pages/media/video/video.wxss","./packageComponent/pages/media/camera/camera.wxss","./packageComponent/pages/media/live-pusher/live-pusher.wxss","./packageComponent/pages/media/live-player/live-player.wxss","./packageComponent/pages/map/map/map.wxss","./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxss","./packageComponent/pages/canvas/webgl/webgl.wxss","./packageComponent/pages/open/ad/ad.wxss","./packageComponent/pages/open/open-data/open-data.wxss","./packageComponent/pages/open/web-view/web-view.wxss","./packageComponent/pages/obstacle-free/aria-component/aria-component.wxss","./app.wxss","./common/lib/weui.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","./page/API/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./page/cloud/index.wxss","./page/common/common.wxss","./page/common/index.wxss","./page/common/lib/weui.wxss","./page/component/index.wxss","./page/extend/index.wxss","./packageComponent/pages/form/editor/assets/iconfont.wxss"],"cwd":"/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/","subPackage":"packageComponent/","replaceContent":{"./packageComponent/pages/camera-scan-code/camera-scan-code.wxss":"\n\ncamera {\n height: 250px;\n}\n\n.btn-area {\n margin-top: 0;\n}\n\nform {\n margin-top: 15px;\n}\n\n.weui-cell__bd {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px 0;\n min-height: 30px;\n}"},"debug":true}
const wcsc_options2 = {"pageCount":9,"files":["./page/component/index.wxss","./page/API/index.wxss","./page/cloud/index.wxss","./page/extend/index.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./app.wxss","./common/lib/weui.wxss","./page/common/common.wxss","./page/common/index.wxss","./page/common/lib/weui.wxss"],"cwd":"/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/","replaceContent":{"./packageComponent/pages/camera-scan-code/camera-scan-code.wxss":"\n\ncamera {\n height: 250px;\n}\n\n.btn-area {\n margin-top: 0;\n}\n\nform {\n margin-top: 15px;\n}\n\n.weui-cell__bd {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px 0;\n min-height: 30px;\n}"},"debug":true}
// const wcc_options6 =
// const wcc_options7 =
const test = async (options, id) => {
console.log("============")
const wcsc = require("wcsc");
const wcsc_result = await wcsc(options);
fs.writeFileSync(path.resolve(__dirname, `wcsc_node${id}.txt`), JSON.stringify(wcsc_result, null, 4))
// const win_result = fs.readFileSync(path.resolve(__dirname, '../package.nw/win.txt'))
// console.log(wcsc_result == win_result)
};
test(wcsc_options1, 1);
test(wcsc_options2, 2);

View File

@ -1,26 +0,0 @@
{
"files": [
"./pages/index/index.wxml",
"./pages/logs/logs.wxml"
],
"contents": [
"<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n",
"<!--logs.wxml-->\n<view class=\"container log-list\">\n <block wx:for=\"{{logs}}\" wx:key=\"timeStamp\" wx:for-item=\"log\">\n <text class=\"log-item\">{{index + 1}}. {{log.date}}</text>\n </block>\n</view>\n"
],
"replaceContent": {
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n"
},
"verbose": false,
"debug": true,
"debugWXS": false,
"showNewTree": false,
"addTestAttre": false,
"independent": false,
"genfuncname": "$gwx",
"isCut": false,
"cwd": "C:/users/msojocs/Documents/we1",
"lazyload": false,
"lazyloadConfig": "",
"wxmlCompileConfig": "2>_<4679./pages/index/index.wxml>_<46790>_<4679./pages/logs/logs.wxml>_<46790",
"wxmlCompileConfigSplit": ">_<4679"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
{
"files": [
"./pages/index/index.wxml",
"./pages/logs/logs.wxml"
],
"contents": [
"<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n",
"<!--logs.wxml-->\n<view class=\"container log-list\">\n <block wx:for=\"{{logs}}\" wx:key=\"timeStamp\" wx:for-item=\"log\">\n <text class=\"log-item\">{{index + 1}}. {{log.date}}</text>\n </block>\n</view>\n"
],
"replaceContent": {
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n"
},
"verbose": false,
"debug": true,
"debugWXS": false,
"showNewTree": false,
"addTestAttre": false,
"independent": false,
"genfuncname": "$gwx",
"cwd": "C:/users/msojocs/Documents/we1",
"lazyload": false,
"lazyloadConfig": "",
"wxmlCompileConfig": "2>_<5795./pages/index/index.wxml>_<57950>_<5795./pages/logs/logs.wxml>_<57950",
"wxmlCompileConfigSplit": ">_<5795"
}

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
{
"files": [
"./pages/index/index.wxml",
"./pages/logs/logs.wxml"
],
"contents": [
"<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n",
"<!--logs.wxml-->\n<view class=\"container log-list\">\n <block wx:for=\"{{logs}}\" wx:key=\"timeStamp\" wx:for-item=\"log\">\n <text class=\"log-item\">{{index + 1}}. {{log.date}}</text>\n </block>\n</view>\n"
],
"replaceContent": {
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <view class=\"userinfo\" data-ib-structured-id=\"1\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"2\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"3\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"4\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"5\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"6\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"7\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"8\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"9\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"10\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"11\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"12\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" data-ib-structured-id=\"13\">\n <text class=\"user-motto\" data-ib-structured-id=\"14\">{{motto}}</text>\n </view>\n</view>\n"
},
"verbose": false,
"debug": true,
"debugWXS": false,
"showNewTree": false,
"addTestAttre": false,
"independent": false,
"genfuncname": "$gwx",
"isCut": false,
"cwd": "C:/users/msojocs/Documents/we1",
"lazyload": false,
"lazyloadConfig": "",
"wxmlCompileConfig": "2>_<3233./pages/index/index.wxml>_<32330>_<3233./pages/logs/logs.wxml>_<32330",
"wxmlCompileConfigSplit": ">_<3233"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
x 大小13
引用文件 6,7 下标5,6
9,10
m0 - m9
gz1 - gz11
var x=[
'./miniprogram_npm/miniprogram-barrage/index.wxml',
'./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml',
'./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml',
'./miniprogram_npm/wxml-to-canvas/index.wxml',
'./page/API/components/set-tab-bar/set-tab-bar.wxml',
'../../../common/head.wxml',
'../../../common/foot.wxml',
'./page/API/index.wxml',
'./page/cloud/index.wxml',
'./page/common/foot.wxml',
'./page/common/head.wxml',
'./page/component/index.wxml',
'./page/extend/index.wxml'];
d_[x[0]]={}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,86 +0,0 @@
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
COMMON=====./miniprogram_npm/miniprogram-barrage/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_1\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_1
}
COMMON=====./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml----function gz\$7061636b616765436f6d706f6e656e742f_2\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_2
}
COMMON=====./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml----function gz\$7061636b616765436f6d706f6e656e742f_3\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_3
}
COMMON=====./miniprogram_npm/wxml-to-canvas/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_4\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_4
}
COMMON=====./page/API/components/set-tab-bar/set-tab-bar.wxml----function gz\$7061636b616765436f6d706f6e656e742f_39\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_39
}
COMMON=====./page/API/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_40\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_40
}
COMMON=====./page/cloud/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_41\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_41
}
COMMON=====./page/common/foot.wxml----function gz\$7061636b616765436f6d706f6e656e742f_42\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_42
}
COMMON=====./page/common/head.wxml----function gz\$7061636b616765436f6d706f6e656e742f_43\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_43
}
COMMON=====./page/component/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_44\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_44
}
COMMON=====./page/extend/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_45\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_45
}

File diff suppressed because one or more lines are too long

View File

@ -1,138 +0,0 @@
#!/usr/bin/env node
const { spawn, spawnSync } = require("child_process");
const path = require("path");
const fs = require("fs");
const { exit } = require("process");
const projectPath = "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/";
const config = [
"-d",
"--split",
">_<109",
"-xc",
"9>_<109./miniprogram_npm/miniprogram-barrage/index.wxml>_<1090>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<1090>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<1090>_<109./miniprogram_npm/wxml-to-canvas/index.wxml>_<1090>_<109./page/API/index.wxml>_<1091>_<109set-tab-bar>_<109./page/API/components/set-tab-bar/set-tab-bar.wxml>_<1090>_<109./page/cloud/index.wxml>_<1090>_<109./page/component/index.wxml>_<1090>_<109./page/extend/index.wxml>_<1090",
"-lla",
"./miniprogram_npm/miniprogram-barrage/index>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<109./miniprogram_npm/wxml-to-canvas/index>_<109./page/API/index>_<109./page/API/components/set-tab-bar/set-tab-bar>_<109./page/cloud/index>_<109./page/component/index>_<109./page/extend/index",
"./miniprogram_npm/miniprogram-barrage/index.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
"./miniprogram_npm/wxml-to-canvas/index.wxml",
"./page/API/index.wxml",
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
"./page/cloud/index.wxml",
"./page/common/foot.wxml",
"./page/common/head.wxml",
"./page/component/index.wxml",
"./page/extend/index.wxml",
"-gn",
"$gwx",
];
const test_wine = () => {
const wine = spawn(
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
config,
{
cwd: projectPath,
}
);
const spwanData = [],
errData = [];
wine.stdout.on("data", (e) => {
spwanData.push(e);
});
wine.stderr.on("data", (e) => {
errData.push(e);
});
return new Promise((resolve, reject) => {
wine.on("close", (n) => {
console.log("wine n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
result = JSON.parse(result);
// result = result.generateFunctionContent["__COMMON__"];
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4)
fs.writeFileSync(
path.resolve(__dirname, "./3/wine_output.json"),
result
);
// process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(
"wine error:",
Buffer.concat(errData).toString()
);
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test_node = () => {
const node_exec = spawn(
path.resolve(__dirname, "../../../nodejs/wcc"),
config,
{
cwd: projectPath,
env: {
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, "./3"),
},
// stdio: 'inherit'
}
);
const spwanData = [],
errData = [];
node_exec.stdout.on("data", (e) => {
spwanData.push(e);
// console.log(e.toString())
});
node_exec.stderr.on("data", (e) => {
errData.push(e);
// console.log(e.toString())
});
return new Promise((resolve, reject) => {
node_exec.on("close", (n) => {
console.log("node n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
// process.stdout.write(result);
result = JSON.parse(result);
// fs.writeFileSync(
// path.resolve(__dirname, "./3/node_output1.json"),
// JSON.stringify(result, null, 4)
// );
// result = result.generateFunctionContent["__COMMON__"];
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4)
fs.writeFileSync(
path.resolve(__dirname, "./3/node_output.json"),
result
);
fs.writeFileSync(
path.resolve(__dirname, "./3/node_stderr.json"),
Buffer.concat(errData)
);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test = async () => {
try {
const node_result = await test_node();
const wine_result = await test_wine();
console.log("结果是否一致:", wine_result.trim() === node_result);
} catch (err) {
console.error("错误:", err);
}
};
test();

View File

@ -1,172 +0,0 @@
#!/usr/bin/env node
const { spawn, spawnSync } = require("child_process");
const path = require("path");
const fs = require("fs");
const { exit } = require("process");
const projectPath = "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/";
const config = [
"-d",
"--split",
">_<4362",
"-xc",
"34>_<4362./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<43620>_<4362./packageComponent/pages/canvas/webgl/webgl.wxml>_<43620>_<4362./packageComponent/pages/content/icon/icon.wxml>_<43620>_<4362./packageComponent/pages/content/progress/progress.wxml>_<43620>_<4362./packageComponent/pages/content/rich-text/rich-text.wxml>_<43620>_<4362./packageComponent/pages/content/text/text.wxml>_<43620>_<4362./packageComponent/pages/form/button/button.wxml>_<43620>_<4362./packageComponent/pages/form/checkbox/checkbox.wxml>_<43620>_<4362./packageComponent/pages/form/editor/editor.wxml>_<43620>_<4362./packageComponent/pages/form/form/form.wxml>_<43620>_<4362./packageComponent/pages/form/input/input.wxml>_<43620>_<4362./packageComponent/pages/form/label/label.wxml>_<43620>_<4362./packageComponent/pages/form/picker/picker.wxml>_<43620>_<4362./packageComponent/pages/form/picker-view/picker-view.wxml>_<43620>_<4362./packageComponent/pages/form/radio/radio.wxml>_<43620>_<4362./packageComponent/pages/form/slider/slider.wxml>_<43620>_<4362./packageComponent/pages/form/switch/switch.wxml>_<43620>_<4362./packageComponent/pages/form/textarea/textarea.wxml>_<43620>_<4362./packageComponent/pages/map/map/map.wxml>_<43620>_<4362./packageComponent/pages/media/camera/camera.wxml>_<43620>_<4362./packageComponent/pages/media/image/image.wxml>_<43620>_<4362./packageComponent/pages/media/live-player/live-player.wxml>_<43620>_<4362./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<43620>_<4362./packageComponent/pages/media/video/video.wxml>_<43620>_<4362./packageComponent/pages/nav/navigator/navigator.wxml>_<43620>_<4362./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<43620>_<4362./packageComponent/pages/open/ad/ad.wxml>_<43620>_<4362./packageComponent/pages/open/open-data/open-data.wxml>_<43620>_<4362./packageComponent/pages/open/web-view/web-view.wxml>_<43620>_<4362./packageComponent/pages/view/cover-view/cover-view.wxml>_<43620>_<4362./packageComponent/pages/view/movable-view/movable-view.wxml>_<43620>_<4362./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<43620>_<4362./packageComponent/pages/view/swiper/swiper.wxml>_<43620>_<4362./packageComponent/pages/view/view/view.wxml>_<43620",
"-lla",
"./packageComponent/pages/canvas/canvas-2d/canvas-2d>_<4362./packageComponent/pages/canvas/webgl/webgl>_<4362./packageComponent/pages/content/icon/icon>_<4362./packageComponent/pages/content/progress/progress>_<4362./packageComponent/pages/content/rich-text/rich-text>_<4362./packageComponent/pages/content/text/text>_<4362./packageComponent/pages/form/button/button>_<4362./packageComponent/pages/form/checkbox/checkbox>_<4362./packageComponent/pages/form/editor/editor>_<4362./packageComponent/pages/form/form/form>_<4362./packageComponent/pages/form/input/input>_<4362./packageComponent/pages/form/label/label>_<4362./packageComponent/pages/form/picker/picker>_<4362./packageComponent/pages/form/picker-view/picker-view>_<4362./packageComponent/pages/form/radio/radio>_<4362./packageComponent/pages/form/slider/slider>_<4362./packageComponent/pages/form/switch/switch>_<4362./packageComponent/pages/form/textarea/textarea>_<4362./packageComponent/pages/map/map/map>_<4362./packageComponent/pages/media/camera/camera>_<4362./packageComponent/pages/media/image/image>_<4362./packageComponent/pages/media/live-player/live-player>_<4362./packageComponent/pages/media/live-pusher/live-pusher>_<4362./packageComponent/pages/media/video/video>_<4362./packageComponent/pages/nav/navigator/navigator>_<4362./packageComponent/pages/obstacle-free/aria-component/aria-component>_<4362./packageComponent/pages/open/ad/ad>_<4362./packageComponent/pages/open/open-data/open-data>_<4362./packageComponent/pages/open/web-view/web-view>_<4362./packageComponent/pages/view/cover-view/cover-view>_<4362./packageComponent/pages/view/movable-view/movable-view>_<4362./packageComponent/pages/view/scroll-view/scroll-view>_<4362./packageComponent/pages/view/swiper/swiper>_<4362./packageComponent/pages/view/view/view",
"./miniprogram_npm/miniprogram-barrage/index.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
"./miniprogram_npm/wxml-to-canvas/index.wxml",
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
"./page/API/index.wxml",
"./page/cloud/index.wxml",
"./page/common/foot.wxml",
"./page/common/head.wxml",
"./page/component/index.wxml",
"./page/extend/index.wxml",
"./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml",
"./packageComponent/pages/canvas/webgl/webgl.wxml",
"./packageComponent/pages/content/icon/icon.wxml",
"./packageComponent/pages/content/progress/progress.wxml",
"./packageComponent/pages/content/rich-text/rich-text.wxml",
"./packageComponent/pages/content/text/text.wxml",
"./packageComponent/pages/form/button/button.wxml",
"./packageComponent/pages/form/checkbox/checkbox.wxml",
"./packageComponent/pages/form/editor/editor.wxml",
"./packageComponent/pages/form/form/form.wxml",
"./packageComponent/pages/form/input/input.wxml",
"./packageComponent/pages/form/label/label.wxml",
"./packageComponent/pages/form/picker/picker.wxml",
"./packageComponent/pages/form/picker-view/picker-view.wxml",
"./packageComponent/pages/form/radio/radio.wxml",
"./packageComponent/pages/form/slider/slider.wxml",
"./packageComponent/pages/form/switch/switch.wxml",
"./packageComponent/pages/form/textarea/textarea.wxml",
"./packageComponent/pages/map/map/map.wxml",
"./packageComponent/pages/media/camera/camera.wxml",
"./packageComponent/pages/media/image/image.wxml",
"./packageComponent/pages/media/live-player/live-player.wxml",
"./packageComponent/pages/media/live-pusher/live-pusher.wxml",
"./packageComponent/pages/media/video/video.wxml",
"./packageComponent/pages/nav/navigator/navigator.wxml",
"./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml",
"./packageComponent/pages/open/ad/ad.wxml",
"./packageComponent/pages/open/open-data/open-data.wxml",
"./packageComponent/pages/open/web-view/web-view.wxml",
"./packageComponent/pages/view/cover-view/cover-view.wxml",
"./packageComponent/pages/view/movable-view/movable-view.wxml",
"./packageComponent/pages/view/scroll-view/scroll-view.wxml",
"./packageComponent/pages/view/swiper/swiper.wxml",
"./packageComponent/pages/view/view/view.wxml",
"-gn",
"$7061636b616765436f6d706f6e656e742f",
];
const test_wine = () => {
const wine = spawn(
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
config,
{
cwd: projectPath,
}
);
const spwanData = [],
errData = [];
wine.stdout.on("data", (e) => {
spwanData.push(e);
});
wine.stderr.on("data", (e) => {
errData.push(e);
});
return new Promise((resolve, reject) => {
wine.on("close", (n) => {
console.log("wine n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
result = JSON.parse(result);
// result = result.generateFunctionContent["__COMMON__"];
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4);
fs.writeFileSync(
path.resolve(__dirname, "./4/wine_output.json"),
result
);
// process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(
"wine error:",
Buffer.concat(errData).toString()
);
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test_node = () => {
const node_exec = spawn(
path.resolve(__dirname, "../../../nodejs/wcc"),
config,
{
cwd: projectPath,
env: {
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, "./4"),
},
// stdio: 'inherit'
}
);
const spwanData = [],
errData = [];
node_exec.stdout.on("data", (e) => {
spwanData.push(e);
// console.log(e.toString())
});
node_exec.stderr.on("data", (e) => {
errData.push(e);
// console.log(e.toString())
});
return new Promise((resolve, reject) => {
node_exec.on("close", (n) => {
console.log("node n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
// process.stdout.write(result);
result = JSON.parse(result);
// fs.writeFileSync(
// path.resolve(__dirname, "./4/node_output1.json"),
// JSON.stringify(result, null, 4)
// );
// result = result.generateFunctionContent["__COMMON__"];
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4);
fs.writeFileSync(
path.resolve(__dirname, "./4/node_output.json"),
result
);
fs.writeFileSync(
path.resolve(__dirname, "./4/node_stderr.json"),
Buffer.concat(errData)
);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test = async () => {
try {
const node_result = await test_node();
const wine_result = await test_wine();
console.log("结果是否一致:", wine_result.trim() === node_result);
} catch (err) {
console.error("错误:", err);
}
};
test();

View File

@ -1,59 +0,0 @@
const fs = require("fs");
const path = require("path");
var x = [
"./miniprogram_npm/miniprogram-barrage/index.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
"./miniprogram_npm/wxml-to-canvas/index.wxml",
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
"../../../common/head.wxml",
"../../../common/foot.wxml",
"./page/API/index.wxml",
"./page/cloud/index.wxml",
"./page/common/foot.wxml",
"./page/common/head.wxml",
"./page/component/index.wxml",
"./page/extend/index.wxml",
];
const config = {
num: 4,
};
let content = "";
const funcName = "$gwx";
const source = fs
.readFileSync(path.resolve(__dirname, "./3/linux_output.js"))
.toString();
console.log(
path.join(
path.dirname("./page/API/components/set-tab-bar/set-tab-bar.wxml"),
"../../../common/head.wxml"
)
);
// "./page/common/head.wxml"
process.exit(0);
// 引入解析
const deps = source.matchAll(/_ai\(.*?,x\[(\d+)\],.*?,x\[(\d+)\],\d+,\d+\)/g);
console.log(deps);
for (let dep of deps) {
console.log(dep[0]);
console.log(dep[1]);
console.log(dep[2]);
}
// gz函数2
const exp = `function gz\\${funcName}_${
config.num + 1
}\\(\\)\\{[\\s\\S]*?__WXML_GLOBAL__\\.ops_cached\\.\\${funcName}_${
config.num + 1
}\n}`;
// console.log('exp --- ', exp)
const gz = source.match(new RegExp(exp));
// console.log(gz)
content += gz[0].replace(
new RegExp(`\\${funcName}\\_\\d+`, "g"),
`${config.funcName}_1`
);

View File

@ -1,20 +0,0 @@
#!/bin/bash
# 本脚本用于测试wcc编译器带lla参数时的编译结果
root_dir=$(cd `dirname $0`/../.. && pwd -P)
pkg_dir="/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/build/mp-weixin"
pkg_dir="/home/msojocs/Documents/we1"
store_dir="$root_dir/test/wcc/lla/1"
cd "$pkg_dir" && \
wine "$root_dir/package.nw/js/vendor/wcc.exe" "-d" "--split" ">_<9657" "-cc" "2>_<9657./pages/index/index.wxml>_<96570>_<9657./pages/logs/logs.wxml>_<96570" "-lla" "./pages/index/index>_<9657./pages/logs/logs" "./pages/index/index.wxml" "./pages/logs/logs.wxml" "-gn" "\$gwx" > "$store_dir/wine.json"
echo "==================="
cd "$pkg_dir" && \
"$root_dir/compiler/nodejs/wcc" "-d" "--split" ">_<9657" "-cc" "2>_<9657./pages/index/index.wxml>_<96570>_<9657./pages/logs/logs.wxml>_<96570" "-lla" "./pages/index/index>_<9657./pages/logs/logs" "./pages/index/index.wxml" "./pages/logs/logs.wxml" "-gn" "\$gwx" > "$store_dir/nodejs.json"
diff "$store_dir/wine.json" "$store_dir/nodejs.json" >/dev/null
if [ "$?" == "0" ];then
echo "the file or dir is same!"
else
echo "the file or dir is different!"
fi

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
x 元素个数13
第6、7 npm 下标5、6
gz1 - gz11
m0 - m10
XC_0 - XC_

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,86 +0,0 @@
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
./packageComponent/common/foot.wxmlindex
./packageComponent/common/head.wxmlindex
COMMON=====./miniprogram_npm/miniprogram-barrage/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_1\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_1
}
COMMON=====./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml----function gz\$7061636b616765436f6d706f6e656e742f_2\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_2
}
COMMON=====./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml----function gz\$7061636b616765436f6d706f6e656e742f_3\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_3
}
COMMON=====./miniprogram_npm/wxml-to-canvas/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_4\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_4
}
COMMON=====./page/API/components/set-tab-bar/set-tab-bar.wxml----function gz\$7061636b616765436f6d706f6e656e742f_39\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_39
}
COMMON=====./page/API/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_40\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_40
}
COMMON=====./page/cloud/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_41\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_41
}
COMMON=====./page/common/foot.wxml----function gz\$7061636b616765436f6d706f6e656e742f_42\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_42
}
COMMON=====./page/common/head.wxml----function gz\$7061636b616765436f6d706f6e656e742f_43\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_43
}
COMMON=====./page/component/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_44\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_44
}
COMMON=====./page/extend/index.wxml----function gz\$7061636b616765436f6d706f6e656e742f_45\(\)\{[\s\S]*?__WXML_GLOBAL__\.ops_cached\.\$7061636b616765436f6d706f6e656e742f_45
}

File diff suppressed because one or more lines are too long

View File

@ -1,26 +0,0 @@
# unicode
| 符号 | unicode |
|-----|---------|
| tab | \u0009 |
| t | \u0074 |
# 起始
var cs = cs || [];\u000a$gwx_XC_1=function(_,_v,_n,_p,_s,_wp,_wl,$gwn,$gwl,$gwh,wh,$gstack,$gwrt,gra,grb,TestTest,wfor,_ca,_da,_r,_rz,_o,_oz,_1,_1z,_2,_2z,_m,_mz,nv_getDate,nv_getRegExp,nv_console,nv_parseInt,nv_parseFloat,nv_isNaN,nv_isFinite,nv_decodeURI,nv_decodeURIComponent,nv_encodeURI,nv_encodeURIComponent,$gdc,nv_JSON,_af,_gv,_ai,_grp,_gd,_gapi,$ixc,_ic,_w,_ev,_tsd){return function(path,global){\u000aif(typeof global==='undefined'){if (typeof __GWX_GLOBAL__==='undefined')global={};else global=__GWX_GLOBAL__;}if(typeof __WXML_GLOBAL__ === 'undefined') {__WXML_GLOBAL__={};\u000a}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};\u000a
#
var e_={}\u000aif(typeof(global.entrys)==='undefined')global.entrys={};e_=global.entrys;\u000avar d_={}\u000aif(typeof(global.defines)==='undefined')global.defines={};d_=global.defines;\u000avar f_={}\u000aif(typeof(global.modules)==='undefined')global.modules={};f_=global.modules || {};\u000avar p_={}\u000avar cs = cs || [];\u000a__WXML_GLOBAL__.ops_cached = __WXML_GLOBAL__.ops_cached || {}\u000a__WXML_GLOBAL__.ops_set = __WXML_GLOBAL__.ops_set || {};\u000a__WXML_GLOBAL__.ops_init = __WXML_GLOBAL__.ops_init || {};\u000avar z=__WXML_GLOBAL__.ops_set.$gwx_XC_1 || [];\u000a
# 函数
function gz$gwx_XC_0_1(){\u000aif( __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1)return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1=[];\u000a(function(z){var a=11;function Z(ops){z.push(ops)}\u000aZ([3,'container'])\u000aZ([3,'userinfo'])\u000aZ([[7],[3,'canIUseOpenData']])\u000aZ([3,'bindViewTap'])\u000aZ([3,'userinfo-avatar'])\u000aZ([3,'width: 183rpx; height: 148rpx; display: block; box-sizing: border-box'])\u000aZ([3,'userAvatarUrl'])\u000aZ([3,'userNickName'])\u000aZ([[2,'!'],[[7],[3,'hasUserInfo']]])\u000aZ([[7],[3,'canIUseGetUserProfile']])\u000aZ([3,'getUserProfile'])\u000aZ([3,' 获取头像昵称 '])\u000aZ([[7],[3,'canIUse']])\u000aZ([3,'getUserInfo'])\u000aZ(z[13])\u000aZ(z[11])\u000aZ([3,' 请使用1.4.4及以上版本基础库 '])\u000aZ(z[3])\u000aZ(z[4])\u000aZ([3,'cover'])\u000aZ([[6],[[7],[3,'userInfo']],[3,'avatarUrl']])\u000aZ([3,'userinfo-nickname'])\u000aZ([a,[[6],[[7],[3,'userInfo']],[3,'nickName']]])\u000aZ([3,'usermotto'])\u000aZ([3,'user-motto'])\u000aZ([a,[[7],[3,'motto']]])\u000a})(__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1);return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a}
#
\u000a__WXML_GLOBAL__.ops_set.$gwx_XC_0=z;\u000a__WXML_GLOBAL__.ops_init.$gwx_XC_0=true;\u000avar x=['./pages/index/index.wxml'];d_[x[0]]={}\u000a
var m0=function(e,s,r,gg){\u000avar z=gz$gwx_XC_0_1()\u000acs.push(\u0022./pages/index/index.wxml:view:2:2\u0022)\u000avar oB=_n('view')\u000a_rz(z,oB,'class',0,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:view:3:4\u0022)\u000avar xC=_n('view')\u000a_rz(z,xC,'class',1,e,s,gg)\u000avar oD=_v()\u000a_(xC,oD)\u000aif(_oz(z,2,e,s,gg)){oD.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:block:4:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:5:8\u0022)\u000avar fE=_mz(z,'view',['bindtap',3,'class',1,'style',2],[],e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:open-data:6:10\u0022)\u000avar cF=_n('open-data')\u000a_rz(z,cF,'type',6,e,s,gg)\u000acs.pop()\u000a_(fE,cF)\u000acs.pop()\u000a_(oD,fE)\u000acs.push(\u0022./pages/index/index.wxml:open-data:8:8\u0022)\u000avar hG=_n('open-data')\u000a_rz(z,hG,'type',7,e,s,gg)\u000acs.pop()\u000a_(oD,hG)\u000acs.pop()\u000a}\u000aelse if(_oz(z,8,e,s,gg)){oD.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:block:10:6\u0022)\u000avar oH=_v()\u000a_(oD,oH)\u000aif(_oz(z,9,e,s,gg)){oH.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000avar cI=_n('button')\u000a_rz(z,cI,'bindtap',10,e,s,gg)\u000avar oJ=_oz(z,11,e,s,gg)\u000a_(cI,oJ)\u000acs.pop()\u000a_(oH,cI)\u000acs.pop()\u000a}\u000aelse if(_oz(z,12,e,s,gg)){oH.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000avar lK=_mz(z,'button',['bindgetuserinfo',13,'openType',1],[],e,s,gg)\u000avar aL=_oz(z,15,e,s,gg)\u000a_(lK,aL)\u000acs.pop()\u000a_(oH,lK)\u000acs.pop()\u000a}\u000aelse{oH.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000avar tM=_n('view')\u000avar eN=_oz(z,16,e,s,gg)\u000a_(tM,eN)\u000acs.pop()\u000a_(oH,tM)\u000acs.pop()\u000a}\u000aoH.wxXCkey=1\u000acs.pop()\u000a}\u000aelse{oD.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:block:15:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:image:16:8\u0022)\u000avar bO=_mz(z,'image',['bindtap',17,'class',1,'mode',2,'src',3],[],e,s,gg)\u000acs.pop()\u000a_(oD,bO)\u000acs.push(\u0022./pages/index/index.wxml:text:17:8\u0022)\u000avar oP=_n('text')\u000a_rz(z,oP,'class',21,e,s,gg)\u000avar xQ=_oz(z,22,e,s,gg)\u000a_(oP,xQ)\u000acs.pop()\u000a_(oD,oP)\u000acs.pop()\u000a}\u000aoD.wxXCkey=1\u000acs.pop()\u000a_(oB,xC)\u000acs.push(\u0022./pages/index/index.wxml:view:20:4\u0022)\u000avar oR=_n('view')\u000a_rz(z,oR,'class',23,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:text:21:6\u0022)\u000avar fS=_n('text')\u000a_rz(z,fS,'class',24,e,s,gg)\u000avar cT=_oz(z,25,e,s,gg)\u000a_(fS,cT)\u000acs.pop()\u000a_(oR,fS)\u000acs.pop()\u000a_(oB,oR)\u000acs.pop()\u000a_(r,oB)\u000areturn r\u000a}\u000ae_[x[0]]={f:m0,j:[],i:[],ti:[],ic:[]}\u000a
#
if(path&&e_[path]){\u000aouterGlobal.__wxml_comp_version__=0.02\u000areturn function(env,dd,global){$gwxc=0;var root={\u0022tag\u0022:\u0022wx-page\u0022};root.children=[]\u000a;g=\u0022$gwx_XC_0\u0022;var main=e_[path].f\u000acs=[]\u000aif (typeof global===\u0022undefined\u0022)global={};global.f=$gdc(f_[path],\u0022\u0022,1);\u000aif(typeof(outerGlobal.__webview_engine_version__)!='undefined'&&outerGlobal.__webview_engine_version__+1e-6>=0.02+1e-6&&outerGlobal.__mergeData__)\u000a{\u000aenv=outerGlobal.__mergeData__(env,dd);\u000a}\u000atry{\u000amain(env,{},root,global);\u000a_tsd(root)\u000aif(typeof(outerGlobal.__webview_engine_version__)=='undefined'|| outerGlobal.__webview_engine_version__+1e-6<0.01+1e-6){return _ev(root);}\u000a}catch(err){\u000aconsole.log(cs, env);\u000aconsole.log(err)\u000athrow err\u000a}\u000a;g=\u0022\u0022;\u000areturn root;\u000a}\u000a}\u000a}\u000a}
# end
(__g.a,__g.b,__g.c,__g.d,__g.e,__g.f,__g.g,__g.h,__g.i,__g.j,__g.k,__g.l,__g.m,__g.n,__g.o,__g.p,__g.q,__g.r,__g.s,__g.t,__g.u,__g.v,__g.w,__g.x,__g.y,__g.z,__g.A,__g.B,__g.C,__g.D,__g.E,__g.F,__g.G,__g.H,__g.I,__g.J,__g.K,__g.L,__g.M,__g.N,__g.O,__g.P,__g.Q,__g.R,__g.S,__g.T,__g.U,__g.V,__g.W,__g.X,__g.Y,__g.Z,__g.aa);if(__vd_version_info__.delayedGwx||false)$gwx_XC_0();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,130 +0,0 @@
#!/usr/bin/env node
const { spawn, spawnSync } = require("child_process");
const path = require("path");
const fs = require("fs");
const { exit } = require("process");
const projectPath = "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/";
const config = [
"-d",
"--split",
">_<4685",
"-cc",
"9>_<4685./miniprogram_npm/miniprogram-barrage/index.wxml>_<46850>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<46850>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<46850>_<4685./miniprogram_npm/wxml-to-canvas/index.wxml>_<46850>_<4685./page/API/index.wxml>_<46851>_<4685set-tab-bar>_<4685./page/API/components/set-tab-bar/set-tab-bar.wxml>_<46850>_<4685./page/cloud/index.wxml>_<46850>_<4685./page/component/index.wxml>_<46850>_<4685./page/extend/index.wxml>_<46850",
"-llw",
"./miniprogram_npm/miniprogram-barrage/index>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<4685./miniprogram_npm/wxml-to-canvas/index>_<4685./page/API/index>_<4685./page/API/components/set-tab-bar/set-tab-bar>_<4685./page/cloud/index>_<4685./page/component/index>_<4685./page/extend/index",
"./miniprogram_npm/miniprogram-barrage/index.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
"./miniprogram_npm/wxml-to-canvas/index.wxml",
"./page/API/index.wxml",
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
"./page/cloud/index.wxml",
"./page/common/foot.wxml",
"./page/common/head.wxml",
"./page/component/index.wxml",
"./page/extend/index.wxml",
"-gn",
"$gwx",
];
const test_wine = () => {
const wine = spawn(
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
config,
{
cwd: projectPath,
}
);
const spwanData = [],
errData = [];
wine.stdout.on("data", (e) => {
spwanData.push(e);
});
wine.stderr.on("data", (e) => {
errData.push(e);
});
return new Promise((resolve, reject) => {
wine.on("close", (n) => {
console.log("wine n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
result = JSON.parse(result);
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4)
// result = result.generateFunctionContent["__COMMON__"];
fs.writeFileSync(
path.resolve(__dirname, "./3/wine_output.json"),
result
);
// process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(
"wine error:",
Buffer.concat(errData).toString()
);
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test_node = () => {
const node_exec = spawn(
path.resolve(__dirname, "../../../nodejs/wcc"),
config,
{
cwd: projectPath,
env: {
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, "./3"),
},
// stdio: 'inherit'
}
);
const spwanData = [],
errData = [];
node_exec.stdout.on("data", (e) => {
spwanData.push(e);
// console.log(e.toString())
});
node_exec.stderr.on("data", (e) => {
errData.push(e);
// console.log(e.toString())
});
return new Promise((resolve, reject) => {
node_exec.on("close", (n) => {
console.log("node n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
// process.stdout.write(result);
result = JSON.parse(result);
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4)
// result = result.generateFunctionContent["__COMMON__"];
fs.writeFileSync(
path.resolve(__dirname, "./3/node_output.json"),
result
);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test = async () => {
try {
const node_result = await test_node();
const wine_result = await test_wine();
console.log("结果是否一致:", wine_result.trim() === node_result);
} catch (err) {
console.error("错误:", err);
}
};
test();

View File

@ -1,168 +0,0 @@
#!/usr/bin/env node
const { spawn, spawnSync } = require("child_process");
const path = require("path");
const fs = require("fs");
const { exit } = require("process");
const projectPath = "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/";
const config = [
"-d",
"--split",
">_<3975",
"-cc",
"34>_<3975./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<39750>_<3975./packageComponent/pages/canvas/webgl/webgl.wxml>_<39750>_<3975./packageComponent/pages/content/icon/icon.wxml>_<39750>_<3975./packageComponent/pages/content/progress/progress.wxml>_<39750>_<3975./packageComponent/pages/content/rich-text/rich-text.wxml>_<39750>_<3975./packageComponent/pages/content/text/text.wxml>_<39750>_<3975./packageComponent/pages/form/button/button.wxml>_<39750>_<3975./packageComponent/pages/form/checkbox/checkbox.wxml>_<39750>_<3975./packageComponent/pages/form/editor/editor.wxml>_<39750>_<3975./packageComponent/pages/form/form/form.wxml>_<39750>_<3975./packageComponent/pages/form/input/input.wxml>_<39750>_<3975./packageComponent/pages/form/label/label.wxml>_<39750>_<3975./packageComponent/pages/form/picker/picker.wxml>_<39750>_<3975./packageComponent/pages/form/picker-view/picker-view.wxml>_<39750>_<3975./packageComponent/pages/form/radio/radio.wxml>_<39750>_<3975./packageComponent/pages/form/slider/slider.wxml>_<39750>_<3975./packageComponent/pages/form/switch/switch.wxml>_<39750>_<3975./packageComponent/pages/form/textarea/textarea.wxml>_<39750>_<3975./packageComponent/pages/map/map/map.wxml>_<39750>_<3975./packageComponent/pages/media/camera/camera.wxml>_<39750>_<3975./packageComponent/pages/media/image/image.wxml>_<39750>_<3975./packageComponent/pages/media/live-player/live-player.wxml>_<39750>_<3975./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<39750>_<3975./packageComponent/pages/media/video/video.wxml>_<39750>_<3975./packageComponent/pages/nav/navigator/navigator.wxml>_<39750>_<3975./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<39750>_<3975./packageComponent/pages/open/ad/ad.wxml>_<39750>_<3975./packageComponent/pages/open/open-data/open-data.wxml>_<39750>_<3975./packageComponent/pages/open/web-view/web-view.wxml>_<39750>_<3975./packageComponent/pages/view/cover-view/cover-view.wxml>_<39750>_<3975./packageComponent/pages/view/movable-view/movable-view.wxml>_<39750>_<3975./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<39750>_<3975./packageComponent/pages/view/swiper/swiper.wxml>_<39750>_<3975./packageComponent/pages/view/view/view.wxml>_<39750",
"-llw",
"./packageComponent/pages/canvas/canvas-2d/canvas-2d>_<3975./packageComponent/pages/canvas/webgl/webgl>_<3975./packageComponent/pages/content/icon/icon>_<3975./packageComponent/pages/content/progress/progress>_<3975./packageComponent/pages/content/rich-text/rich-text>_<3975./packageComponent/pages/content/text/text>_<3975./packageComponent/pages/form/button/button>_<3975./packageComponent/pages/form/checkbox/checkbox>_<3975./packageComponent/pages/form/editor/editor>_<3975./packageComponent/pages/form/form/form>_<3975./packageComponent/pages/form/input/input>_<3975./packageComponent/pages/form/label/label>_<3975./packageComponent/pages/form/picker/picker>_<3975./packageComponent/pages/form/picker-view/picker-view>_<3975./packageComponent/pages/form/radio/radio>_<3975./packageComponent/pages/form/slider/slider>_<3975./packageComponent/pages/form/switch/switch>_<3975./packageComponent/pages/form/textarea/textarea>_<3975./packageComponent/pages/map/map/map>_<3975./packageComponent/pages/media/camera/camera>_<3975./packageComponent/pages/media/image/image>_<3975./packageComponent/pages/media/live-player/live-player>_<3975./packageComponent/pages/media/live-pusher/live-pusher>_<3975./packageComponent/pages/media/video/video>_<3975./packageComponent/pages/nav/navigator/navigator>_<3975./packageComponent/pages/obstacle-free/aria-component/aria-component>_<3975./packageComponent/pages/open/ad/ad>_<3975./packageComponent/pages/open/open-data/open-data>_<3975./packageComponent/pages/open/web-view/web-view>_<3975./packageComponent/pages/view/cover-view/cover-view>_<3975./packageComponent/pages/view/movable-view/movable-view>_<3975./packageComponent/pages/view/scroll-view/scroll-view>_<3975./packageComponent/pages/view/swiper/swiper>_<3975./packageComponent/pages/view/view/view",
"./miniprogram_npm/miniprogram-barrage/index.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
"./miniprogram_npm/wxml-to-canvas/index.wxml",
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
"./page/API/index.wxml",
"./page/cloud/index.wxml",
"./page/common/foot.wxml",
"./page/common/head.wxml",
"./page/component/index.wxml",
"./page/extend/index.wxml",
"./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml",
"./packageComponent/pages/canvas/webgl/webgl.wxml",
"./packageComponent/pages/content/icon/icon.wxml",
"./packageComponent/pages/content/progress/progress.wxml",
"./packageComponent/pages/content/rich-text/rich-text.wxml",
"./packageComponent/pages/content/text/text.wxml",
"./packageComponent/pages/form/button/button.wxml",
"./packageComponent/pages/form/checkbox/checkbox.wxml",
"./packageComponent/pages/form/editor/editor.wxml",
"./packageComponent/pages/form/form/form.wxml",
"./packageComponent/pages/form/input/input.wxml",
"./packageComponent/pages/form/label/label.wxml",
"./packageComponent/pages/form/picker/picker.wxml",
"./packageComponent/pages/form/picker-view/picker-view.wxml",
"./packageComponent/pages/form/radio/radio.wxml",
"./packageComponent/pages/form/slider/slider.wxml",
"./packageComponent/pages/form/switch/switch.wxml",
"./packageComponent/pages/form/textarea/textarea.wxml",
"./packageComponent/pages/map/map/map.wxml",
"./packageComponent/pages/media/camera/camera.wxml",
"./packageComponent/pages/media/image/image.wxml",
"./packageComponent/pages/media/live-player/live-player.wxml",
"./packageComponent/pages/media/live-pusher/live-pusher.wxml",
"./packageComponent/pages/media/video/video.wxml",
"./packageComponent/pages/nav/navigator/navigator.wxml",
"./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml",
"./packageComponent/pages/open/ad/ad.wxml",
"./packageComponent/pages/open/open-data/open-data.wxml",
"./packageComponent/pages/open/web-view/web-view.wxml",
"./packageComponent/pages/view/cover-view/cover-view.wxml",
"./packageComponent/pages/view/movable-view/movable-view.wxml",
"./packageComponent/pages/view/scroll-view/scroll-view.wxml",
"./packageComponent/pages/view/swiper/swiper.wxml",
"./packageComponent/pages/view/view/view.wxml",
"-gn",
"$7061636b616765436f6d706f6e656e742f",
];
const test_wine = () => {
const wine = spawn(
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
config,
{
cwd: projectPath,
}
);
const spwanData = [],
errData = [];
wine.stdout.on("data", (e) => {
spwanData.push(e);
});
wine.stderr.on("data", (e) => {
errData.push(e);
});
return new Promise((resolve, reject) => {
wine.on("close", (n) => {
console.log("wine n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
result = JSON.parse(result);
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4);
// result = result.generateFunctionContent["__COMMON__"];
fs.writeFileSync(
path.resolve(__dirname, "./4/wine_output.json"),
result
);
// process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(
"wine error:",
Buffer.concat(errData).toString()
);
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test_node = () => {
const node_exec = spawn(
path.resolve(__dirname, "../../../nodejs/wcc"),
config,
{
cwd: projectPath,
env: {
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, "./4"),
},
// stdio: 'inherit'
}
);
const spwanData = [],
errData = [];
node_exec.stdout.on("data", (e) => {
spwanData.push(e);
// console.log(e.toString())
});
node_exec.stderr.on("data", (e) => {
errData.push(e);
// console.log(e.toString())
});
return new Promise((resolve, reject) => {
node_exec.on("close", (n) => {
console.log("node n: ", n);
if (0 === n) {
let result = Buffer.concat(spwanData).toString();
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
// process.stdout.write(result);
result = JSON.parse(result);
// delete result.generateFunctionContent["__COMMON__"];
result = JSON.stringify(result, null, 4);
// result = result.generateFunctionContent["__COMMON__"];
fs.writeFileSync(
path.resolve(__dirname, "./4/node_output.json"),
result
);
fs.writeFileSync(
path.resolve(__dirname, "./4/node_stderr.json"),
Buffer.concat(errData)
);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test = async () => {
try {
const node_result = await test_node();
const wine_result = await test_wine();
console.log("结果是否一致:", wine_result.trim() === node_result);
} catch (err) {
console.error("错误:", err);
}
};
test();

View File

@ -1 +0,0 @@
var cs = cs || [];\u000a$gwx_XC_1=function(_,_v,_n,_p,_s,_wp,_wl,$gwn,$gwl,$gwh,wh,$gstack,$gwrt,gra,grb,TestTest,wfor,_ca,_da,_r,_rz,_o,_oz,_1,_1z,_2,_2z,_m,_mz,nv_getDate,nv_getRegExp,nv_console,nv_parseInt,nv_parseFloat,nv_isNaN,nv_isFinite,nv_decodeURI,nv_decodeURIComponent,nv_encodeURI,nv_encodeURIComponent,$gdc,nv_JSON,_af,_gv,_ai,_grp,_gd,_gapi,$ixc,_ic,_w,_ev,_tsd){return function(path,global){\u000aif(typeof global==='undefined'){if (typeof __GWX_GLOBAL__==='undefined')global={};else global=__GWX_GLOBAL__;}if(typeof __WXML_GLOBAL__ === 'undefined') {__WXML_GLOBAL__={};\u000a}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};\u000avar e_={}\u000aif(typeof(global.entrys)==='undefined')global.entrys={};e_=global.entrys;\u000avar d_={}\u000aif(typeof(global.defines)==='undefined')global.defines={};d_=global.defines;\u000avar f_={}\u000aif(typeof(global.modules)==='undefined')global.modules={};f_=global.modules || {};\u000avar p_={}\u000avar cs = cs || [];\u000a__WXML_GLOBAL__.ops_cached = __WXML_GLOBAL__.ops_cached || {}\u000a__WXML_GLOBAL__.ops_set = __WXML_GLOBAL__.ops_set || {};\u000a__WXML_GLOBAL__.ops_init = __WXML_GLOBAL__.ops_init || {};\u000avar z=__WXML_GLOBAL__.ops_set.$gwx_XC_1 || [];\u000afunction gz$gwx_XC_1_1(){\u000aif( __WXML_GLOBAL__.ops_cached.$gwx_XC_1_1)return __WXML_GLOBAL__.ops_cached.$gwx_XC_1_1\u000a__WXML_GLOBAL__.ops_cached.$gwx_XC_1_1=[];\u000a(function(z){var a=11;function Z(ops){z.push(ops)}\u000aZ([3,'container log-list'])\u000aZ([3,'log'])\u000aZ([[7],[3,'logs']])\u000aZ([3,'timeStamp'])\u000aZ([3,'log-item'])\u000aZ([a,[[2,'+'],[[7],[3,'index']],[1,1]],[3,'. '],[[6],[[7],[3,'log']],[3,'date']]])\u000a})(__WXML_GLOBAL__.ops_cached.$gwx_XC_1_1);return __WXML_GLOBAL__.ops_cached.$gwx_XC_1_1\u000a}\u000a__WXML_GLOBAL__.ops_set.$gwx_XC_1=z;\u000a__WXML_GLOBAL__.ops_init.$gwx_XC_1=true;\u000avar x=['./pages/logs/logs.wxml'];d_[x[0]]={}\u000avar m0=function(e,s,r,gg){\u000avar z=gz$gwx_XC_1_1()\u000acs.push(\u0022./pages/logs/logs.wxml:view:2:2\u0022)\u000avar oV=_n('view')\u000a_rz(z,oV,'class',0,e,s,gg)\u000avar cW=_v()\u000a_(oV,cW)\u000acs.push(\u0022./pages/logs/logs.wxml:block:3:4\u0022)\u000avar oX=function(aZ,lY,t1,gg){\u000acs.push(\u0022./pages/logs/logs.wxml:block:3:4\u0022)\u000acs.push(\u0022./pages/logs/logs.wxml:text:4:6\u0022)\u000avar b3=_n('text')\u000a_rz(z,b3,'class',4,aZ,lY,gg)\u000avar o4=_oz(z,5,aZ,lY,gg)\u000a_(b3,o4)\u000acs.pop()\u000a_(t1,b3)\u000acs.pop()\u000areturn t1\u000a}\u000acW.wxXCkey=2\u000a_2z(z,2,oX,e,s,gg,cW,'log','index','timeStamp')\u000acs.pop()\u000acs.pop()\u000a_(r,oV)\u000areturn r\u000a}\u000ae_[x[0]]={f:m0,j:[],i:[],ti:[],ic:[]}\u000aif(path&&e_[path]){\u000aouterGlobal.__wxml_comp_version__=0.02\u000areturn function(env,dd,global){$gwxc=0;var root={\u0022tag\u0022:\u0022wx-page\u0022};root.children=[]\u000a;g=\u0022$gwx_XC_1\u0022;var main=e_[path].f\u000acs=[]\u000aif (typeof global===\u0022undefined\u0022)global={};global.f=$gdc(f_[path],\u0022\u0022,1);\u000aif(typeof(outerGlobal.__webview_engine_version__)!='undefined'&&outerGlobal.__webview_engine_version__+1e-6>=0.02+1e-6&&outerGlobal.__mergeData__)\u000a{\u000aenv=outerGlobal.__mergeData__(env,dd);\u000a}\u000atry{\u000amain(env,{},root,global);\u000a_tsd(root)\u000aif(typeof(outerGlobal.__webview_engine_version__)=='undefined'|| outerGlobal.__webview_engine_version__+1e-6<0.01+1e-6){return _ev(root);}\u000a}catch(err){\u000aconsole.log(cs, env);\u000aconsole.log(err)\u000athrow err\u000a}\u000a;g=\u0022\u0022;\u000areturn root;\u000a}\u000a}\u000a}\u000a}(__g.a,__g.b,__g.c,__g.d,__g.e,__g.f,__g.g,__g.h,__g.i,__g.j,__g.k,__g.l,__g.m,__g.n,__g.o,__g.p,__g.q,__g.r,__g.s,__g.t,__g.u,__g.v,__g.w,__g.x,__g.y,__g.z,__g.A,__g.B,__g.C,__g.D,__g.E,__g.F,__g.G,__g.H,__g.I,__g.J,__g.K,__g.L,__g.M,__g.N,__g.O,__g.P,__g.Q,__g.R,__g.S,__g.T,__g.U,__g.V,__g.W,__g.X,__g.Y,__g.Z,__g.aa);if(__vd_version_info__.delayedGwx||false)$gwx_XC_1();

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
const fs = require('fs')
const path = require('path')
var x=['./miniprogram_npm/miniprogram-barrage/index.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml','./miniprogram_npm/wxml-to-canvas/index.wxml','./page/API/components/set-tab-bar/set-tab-bar.wxml','../../../common/head.wxml','../../../common/foot.wxml','./page/API/index.wxml','./page/cloud/index.wxml','./page/common/foot.wxml','./page/common/head.wxml','./page/component/index.wxml','./page/extend/index.wxml'];
const config = {
num: 4
}
const source = fs.readFileSync(path.resolve(__dirname, './3/linux_output.js')).toString()
const m0Exp = `var m${config.num}=function\\(e,s,r,gg\\){[\\s\\S]*{f:m${config.num},j:\\[.*?\\],i:\\[.*?\\],ti:\\[(.*?)\\],ic:\\[.*?\\]}`
console.log('exp --- ', m0Exp)
let m0 = source.match(new RegExp(m0Exp))
const compIndex = m0[1].match(/\d+/g)
console.log(compIndex)
for(let index of compIndex)
console.log(x[index])
m0 = m0[0].replace(new RegExp(`m${config.num}`, 'g'), 'm0').replace(new RegExp(`x\\[${config.num}\\]`, 'g'), 'x[0]')

File diff suppressed because one or more lines are too long

View File

@ -1,22 +0,0 @@
#!/bin/bash
# 本脚本用于测试wcc编译器带llw参数时的编译结果
root_dir=$(cd `dirname $0`/../.. && pwd -P)
pkg_dir="/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/build/mp-weixin"
pkg_dir="/home/msojocs/Documents/we1"
store_dir="$root_dir/test/wcc/llw/1"
cd "$pkg_dir" && \
wine "$root_dir/package.nw/js/vendor/wcc.exe" "-d" "--split" ">_<9657" "-cc" "2>_<9657./pages/index/index.wxml>_<96570>_<9657./pages/logs/logs.wxml>_<96570" "-llw" "./pages/index/index>_<9657./pages/logs/logs" "./pages/index/index.wxml" "./pages/logs/logs.wxml" "-gn" "\$gwx" > "$store_dir/wine.json"
echo "==================="
cd "$pkg_dir" && \
"$root_dir/compiler/nodejs/wcc" "-d" "--split" ">_<9657" "-cc" "2>_<9657./pages/index/index.wxml>_<96570>_<9657./pages/logs/logs.wxml>_<96570" "-llw" "./pages/index/index>_<9657./pages/logs/logs" "./pages/index/index.wxml" "./pages/logs/logs.wxml" "-gn" "\$gwx" > "$store_dir/nodejs.json"
diff "$store_dir/wine.json" "$store_dir/nodejs.json" >/dev/null
if [ "$?" == "0" ];then
echo "the file or dir is same!"
else
echo "the file or dir is different!"
fi

View File

@ -1,157 +0,0 @@
#!/usr/bin/env node
const { spawn, spawnSync } = require("child_process");
const path = require("path");
const { exit } = require("process");
const projectPath =
"/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/dev/mp-weixin";
const config = [
"-ds",
"-d",
"--split",
">_<398",
"-cc",
"56>_<398./components/beat-char/beat-char.wxml>_<3980>_<398./components/card.wxml>_<3980>_<398./components/mytree/mytree.wxml>_<3981>_<398mytree>_<398./components/scroll/index.wxml>_<3980>_<398./components/tab/index.wxml>_<3980>_<398./miniprogram_npm/weui-miniprogram/cell/cell.wxml>_<3981>_<398mp-cells>_<398./miniprogram_npm/weui-miniprogram/cells/cells.wxml>_<3980>_<398./miniprogram_npm/weui-miniprogram/loading/loading.wxml>_<3980>_<398./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html.wxml>_<3981>_<398node>_<398./node-modules/mp-html/dist/uni-app/components/mp-html/node/node.wxml>_<3981>_<398node>_<398./pages/THEOL/THEOL.wxml>_<3982>_<398mp-cell>_<398mp-cells>_<398./pages/THEOL/dir/dir.wxml>_<3982>_<398mp-cell>_<398mp-cells>_<398./pages/THEOL/tree/tree.wxml>_<3982>_<398mytree>_<398mp-loading>_<398./pages/articleView/articleView.wxml>_<3981>_<398html-parser>_<398./pages/auth/auth.wxml>_<3983>_<398uni-row>_<398uni-col>_<398uni-title>_<398./pages/calendar/calendar.wxml>_<3980>_<398./pages/card/card.wxml>_<3982>_<398mp-cell>_<398mp-cells>_<398./pages/checkIn/edit.wxml>_<3983>_<398d-form>_<398mp-cell>_<398mp-cells>_<398./pages/checkIn/list.wxml>_<3982>_<398mp-cell>_<398mp-cells>_<398./pages/courseTable/courseTable.wxml>_<3980>_<398./pages/courseTable/imgCropper/imgCropper.wxml>_<3981>_<398image-cropper>_<398./pages/exam/exam.wxml>_<3980>_<398./pages/grade/grade.wxml>_<3980>_<398./pages/index/index.wxml>_<3980>_<398./pages/laboratory/detail.wxml>_<3980>_<398./pages/laboratory/list.wxml>_<3980>_<398./pages/login/login.wxml>_<3980>_<398./pages/maintenance/maintenance.wxml>_<3981>_<398beat-char>_<398./pages/my/ADMag/ADMag.wxml>_<3980>_<398./pages/my/ADMag/watchAD/watchAD.wxml>_<3980>_<398./pages/my/about.wxml>_<3980>_<398./pages/my/bind/bind.wxml>_<3980>_<398./pages/my/bind/mini.wxml>_<3980>_<398./pages/my/dataMag/dataMag.wxml>_<3980>_<398./pages/my/info.wxml>_<3982>_<398uni-row>_<398uni-col>_<398./pages/my/my.wxml>_<3982>_<398uni-card>_<398info>_<398./pages/my/register/register.wxml>_<3980>_<398./pages/my/sso/forget.wxml>_<3980>_<398./pages/my/sso/sso.wxml>_<3982>_<398mp-cells>_<398mp-cell>_<398./pages/my/sub/sub.wxml>_<3982>_<398mp-cell>_<398mp-cells>_<398./pages/newsList/newsList.wxml>_<3982>_<398tab>_<398scroll>_<398./pages/officeGrade/query.wxml>_<3982>_<398mp-cells>_<398mp-cell>_<398./pages/resources/list.wxml>_<3980>_<398./pages/terms/privacy.wxml>_<3981>_<398card>_<398./pages/terms/terms.wxml>_<3980>_<398./uni_modules/uni-card/components/uni-card/uni-card.wxml>_<3981>_<398uni-icons>_<398./uni_modules/uni-icons/components/uni-icons/uni-icons.wxml>_<3980>_<398./uni_modules/uni-row/components/uni-col/uni-col.wxml>_<3980>_<398./uni_modules/uni-row/components/uni-row/uni-row.wxml>_<3980>_<398./uni_modules/uni-title/components/uni-title/uni-title.wxml>_<3980>_<398./wxcomponents/dynamicForm/components/timePicker/timePicker.wxml>_<3980>_<398./wxcomponents/dynamicForm/index.wxml>_<3983>_<398van-icon>_<398van-uploader>_<398time-picker>_<398./wxcomponents/dynamicForm/vant/icon/index.wxml>_<3981>_<398van-info>_<398./wxcomponents/dynamicForm/vant/info/index.wxml>_<3980>_<398./wxcomponents/dynamicForm/vant/uploader/index.wxml>_<3981>_<398van-icon>_<398./wxcomponents/image-cropper/image-cropper.wxml>_<3980",
"-llw",
"./components/beat-char/beat-char>_<398./components/card>_<398./components/mytree/mytree>_<398./components/scroll/index>_<398./components/tab/index>_<398./miniprogram_npm/weui-miniprogram/cell/cell>_<398./miniprogram_npm/weui-miniprogram/cells/cells>_<398./miniprogram_npm/weui-miniprogram/loading/loading>_<398./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html>_<398./node-modules/mp-html/dist/uni-app/components/mp-html/node/node>_<398./pages/THEOL/THEOL>_<398./pages/THEOL/dir/dir>_<398./pages/THEOL/tree/tree>_<398./pages/articleView/articleView>_<398./pages/auth/auth>_<398./pages/calendar/calendar>_<398./pages/card/card>_<398./pages/checkIn/edit>_<398./pages/checkIn/list>_<398./pages/courseTable/courseTable>_<398./pages/courseTable/imgCropper/imgCropper>_<398./pages/exam/exam>_<398./pages/grade/grade>_<398./pages/index/index>_<398./pages/laboratory/detail>_<398./pages/laboratory/list>_<398./pages/login/login>_<398./pages/maintenance/maintenance>_<398./pages/my/ADMag/ADMag>_<398./pages/my/ADMag/watchAD/watchAD>_<398./pages/my/about>_<398./pages/my/bind/bind>_<398./pages/my/bind/mini>_<398./pages/my/dataMag/dataMag>_<398./pages/my/info>_<398./pages/my/my>_<398./pages/my/register/register>_<398./pages/my/sso/forget>_<398./pages/my/sso/sso>_<398./pages/my/sub/sub>_<398./pages/newsList/newsList>_<398./pages/officeGrade/query>_<398./pages/resources/list>_<398./pages/terms/privacy>_<398./pages/terms/terms>_<398./uni_modules/uni-card/components/uni-card/uni-card>_<398./uni_modules/uni-icons/components/uni-icons/uni-icons>_<398./uni_modules/uni-row/components/uni-col/uni-col>_<398./uni_modules/uni-row/components/uni-row/uni-row>_<398./uni_modules/uni-title/components/uni-title/uni-title>_<398./wxcomponents/dynamicForm/components/timePicker/timePicker>_<398./wxcomponents/dynamicForm/index>_<398./wxcomponents/dynamicForm/vant/icon/index>_<398./wxcomponents/dynamicForm/vant/info/index>_<398./wxcomponents/dynamicForm/vant/uploader/index>_<398./wxcomponents/image-cropper/image-cropper",
"./components/beat-char/beat-char.wxml",
"./components/card.wxml",
"./components/mytree/mytree.wxml",
"./components/scroll/index.wxml",
"./components/tab/index.wxml",
"./miniprogram_npm/weui-miniprogram/cell/cell.wxml",
"./miniprogram_npm/weui-miniprogram/cells/cells.wxml",
"./miniprogram_npm/weui-miniprogram/loading/loading.wxml",
"./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html.wxml",
"./node-modules/mp-html/dist/uni-app/components/mp-html/node/node.wxml",
"./pages/THEOL/THEOL.wxml",
"./pages/THEOL/dir/dir.wxml",
"./pages/THEOL/tree/tree.wxml",
"./pages/articleView/articleView.wxml",
"./pages/auth/auth.wxml",
"./pages/calendar/calendar.wxml",
"./pages/card/card.wxml",
"./pages/checkIn/edit.wxml",
"./pages/checkIn/list.wxml",
"./pages/courseTable/courseTable.wxml",
"./pages/courseTable/imgCropper/imgCropper.wxml",
"./pages/exam/exam.wxml",
"./pages/grade/grade.wxml",
"./pages/index/index.wxml",
"./pages/laboratory/detail.wxml",
"./pages/laboratory/list.wxml",
"./pages/login/login.wxml",
"./pages/maintenance/maintenance.wxml",
"./pages/my/ADMag/ADMag.wxml",
"./pages/my/ADMag/watchAD/watchAD.wxml",
"./pages/my/about.wxml",
"./pages/my/bind/bind.wxml",
"./pages/my/bind/mini.wxml",
"./pages/my/dataMag/dataMag.wxml",
"./pages/my/info.wxml",
"./pages/my/my.wxml",
"./pages/my/register/register.wxml",
"./pages/my/sso/forget.wxml",
"./pages/my/sso/sso.wxml",
"./pages/my/sub/sub.wxml",
"./pages/newsList/newsList.wxml",
"./pages/officeGrade/query.wxml",
"./pages/resources/list.wxml",
"./pages/terms/privacy.wxml",
"./pages/terms/terms.wxml",
"./uni_modules/uni-card/components/uni-card/uni-card.wxml",
"./uni_modules/uni-icons/components/uni-icons/uni-icons.wxml",
"./uni_modules/uni-row/components/uni-col/uni-col.wxml",
"./uni_modules/uni-row/components/uni-row/uni-row.wxml",
"./uni_modules/uni-title/components/uni-title/uni-title.wxml",
"./wxcomponents/dynamicForm/components/timePicker/timePicker.wxml",
"./wxcomponents/dynamicForm/index.wxml",
"./wxcomponents/dynamicForm/vant/icon/index.wxml",
"./wxcomponents/dynamicForm/vant/info/index.wxml",
"./wxcomponents/dynamicForm/vant/uploader/index.wxml",
"./wxcomponents/image-cropper/image-cropper.wxml",
"./pages/grade/check.wxs",
"./pages/laboratory/labDetail.wxs",
"-gn",
"$gwx",
];
const test_wine = () => {
const wine = spawn(
path.resolve(__dirname, "../../package.nw/js/vendor/wcc.exe"),
config,
{
cwd: projectPath,
}
);
const spwanData = [],
errData = [];
wine.stdout.on("data", (e) => {
spwanData.push(e);
});
wine.stderr.on("data", (e) => {
errData.push(e);
});
return new Promise((resolve, reject) => {
wine.on("close", (n) => {
console.log("n: ", n);
if (0 === n) {
const result = Buffer.concat(spwanData).toString();
process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test_node = () => {
const node_exec = spawn(
path.resolve(__dirname, "../../compiler/nodejs/wcc"),
config,
{
cwd: projectPath,
// stdio: 'inherit'
}
);
const spwanData = [],
errData = [];
node_exec.stdout.on("data", (e) => {
spwanData.push(e);
// console.log(e.toString())
});
node_exec.stderr.on("data", (e) => {
errData.push(e);
// console.log(e.toString())
});
return new Promise((resolve, reject) => {
node_exec.on("close", (n) => {
console.log("n: ", n);
if (0 === n) {
const result = Buffer.concat(spwanData).toString();
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
process.stdout.write(result);
resolve(result);
} else {
process.stderr.write(Buffer.concat(errData).toString());
// process.stderr.write(Buffer.concat(spwanData).toString());
reject(n);
}
});
});
};
const test = async () => {
try {
const wine_result = await test_wine();
const node_result = await test_node();
console.log(wine_result === node_result)
} catch (err) {
console.error('错误:', err);
}
};
test();

File diff suppressed because one or more lines are too long

View File

@ -1,186 +0,0 @@
$gwx_XC_0=function(_,_v,_n,_p,_s,_wp,_wl,$gwn,$gwl,$gwh,wh,$gstack,$gwrt,gra,grb,TestTest,wfor,_ca,_da,_r,_rz,_o,_oz,_1,_1z,_2,_2z,_m,_mz,nv_getDate,nv_getRegExp,nv_console,nv_parseInt,nv_parseFloat,nv_isNaN,nv_isFinite,nv_decodeURI,nv_decodeURIComponent,nv_encodeURI,nv_encodeURIComponent,$gdc,nv_JSON,_af,_gv,_ai,_grp,_gd,_gapi,$ixc,_ic,_w,_ev,_tsd){return function(path,global){
if(typeof global==='undefined'){if (typeof __GWX_GLOBAL__==='undefined')global={};else global=__GWX_GLOBAL__;}
if(typeof __WXML_GLOBAL__ === 'undefined') {
__WXML_GLOBAL__={};
}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};
var e_={}
if(typeof(global.entrys)==='undefined')global.entrys={};e_=global.entrys;
var d_={}
if(typeof(global.defines)==='undefined')global.defines={};d_=global.defines;
var f_={}
if(typeof(global.modules)==='undefined')global.modules={};f_=global.modules || {};
var p_={}
var cs
__WXML_GLOBAL__.ops_cached = __WXML_GLOBAL__.ops_cached || {}
__WXML_GLOBAL__.ops_set = __WXML_GLOBAL__.ops_set || {};
__WXML_GLOBAL__.ops_init = __WXML_GLOBAL__.ops_init || {};
var z=__WXML_GLOBAL__.ops_set.$gwx_XC_0 || [];
function gz$gwx_XC_0_1(){
if( __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1)return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1
__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1=[];
(function(z){var a=11;function Z(ops){z.push(ops)}
Z([3,'container'])
Z([3,'0'])
Z([3,'userinfo'])
Z([3,'1'])
Z([3,'2'])
Z([[7],[3,'canIUseOpenData']])
Z([3,'bindViewTap'])
Z([3,'userinfo-avatar'])
Z([3,'3'])
Z([3,'width: 183rpx; height: 148rpx; display: block; box-sizing: border-box'])
Z([3,'4'])
Z([3,'userAvatarUrl'])
Z([3,'5'])
Z([3,'userNickName'])
Z([3,'6'])
Z([[2,'!'],[[7],[3,'hasUserInfo']]])
Z([[7],[3,'canIUseGetUserProfile']])
Z([3,'getUserProfile'])
Z([3,'7'])
Z([3,' 获取头像昵称 '])
Z([[7],[3,'canIUse']])
Z([3,'getUserInfo'])
Z([3,'8'])
Z(z[21])
Z(z[19])
Z([3,'9'])
Z([3,' 请使用1.4.4及以上版本基础库 '])
Z([3,'10'])
Z(z[6])
Z(z[7])
Z([3,'11'])
Z([3,'cover'])
Z([[6],[[7],[3,'userInfo']],[3,'avatarUrl']])
Z([3,'userinfo-nickname'])
Z([3,'12'])
Z([a,[[6],[[7],[3,'userInfo']],[3,'nickName']]])
Z([3,'usermotto'])
Z([3,'13'])
Z([3,'user-motto'])
Z([3,'14'])
Z([a,[[7],[3,'motto']]])
})(__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1);return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1
}
__WXML_GLOBAL__.ops_set.$gwx_XC_0=z;
__WXML_GLOBAL__.ops_init.$gwx_XC_0=true;
var x=['./pages/index/index.wxml'];d_[x[0]]={}
var m0=function(e,s,r,gg){
var z=gz$gwx_XC_0_1()
cs.push("./pages/index/index.wxml:view:2:2")
var oB=_mz(z,'view',['class',0,'data-ib-structured-id',1],[],e,s,gg)
cs.push("./pages/index/index.wxml:view:3:4")
var xC=_mz(z,'view',['class',2,'data-ib-structured-id',1],[],e,s,gg)
var oD=_v()
_(xC,oD)
if(_oz(z,5,e,s,gg)){oD.wxVkey=1
cs.push("./pages/index/index.wxml:block:4:6")
cs.push("./pages/index/index.wxml:view:5:8")
var fE=_mz(z,'view',['bindtap',6,'class',1,'data-ib-structured-id',2,'style',3],[],e,s,gg)
cs.push("./pages/index/index.wxml:open-data:6:10")
var cF=_mz(z,'open-data',['data-ib-structured-id',10,'type',1],[],e,s,gg)
cs.pop()
_(fE,cF)
cs.pop()
_(oD,fE)
cs.push("./pages/index/index.wxml:open-data:8:8")
var hG=_mz(z,'open-data',['data-ib-structured-id',12,'type',1],[],e,s,gg)
cs.pop()
_(oD,hG)
cs.pop()
}
else if(_oz(z,15,e,s,gg)){oD.wxVkey=2
cs.push("./pages/index/index.wxml:block:10:6")
var oH=_v()
_(oD,oH)
if(_oz(z,16,e,s,gg)){oH.wxVkey=1
cs.push("./pages/index/index.wxml:button:11:8")
cs.push("./pages/index/index.wxml:button:11:8")
var cI=_mz(z,'button',['bindtap',17,'data-ib-structured-id',1],[],e,s,gg)
var oJ=_oz(z,19,e,s,gg)
_(cI,oJ)
cs.pop()
_(oH,cI)
cs.pop()
}
else if(_oz(z,20,e,s,gg)){oH.wxVkey=2
cs.push("./pages/index/index.wxml:button:12:8")
cs.push("./pages/index/index.wxml:button:12:8")
var lK=_mz(z,'button',['bindgetuserinfo',21,'data-ib-structured-id',1,'openType',2],[],e,s,gg)
var aL=_oz(z,24,e,s,gg)
_(lK,aL)
cs.pop()
_(oH,lK)
cs.pop()
}
else{oH.wxVkey=3
cs.push("./pages/index/index.wxml:view:13:8")
cs.push("./pages/index/index.wxml:view:13:8")
var tM=_n('view')
_rz(z,tM,'data-ib-structured-id',25,e,s,gg)
var eN=_oz(z,26,e,s,gg)
_(tM,eN)
cs.pop()
_(oH,tM)
cs.pop()
}
oH.wxXCkey=1
cs.pop()
}
else{oD.wxVkey=3
cs.push("./pages/index/index.wxml:block:15:6")
cs.push("./pages/index/index.wxml:image:16:8")
var bO=_mz(z,'image',['bindtap',28,'class',1,'data-ib-structured-id',2,'mode',3,'src',4],[],e,s,gg)
cs.pop()
_(oD,bO)
cs.push("./pages/index/index.wxml:text:17:8")
var oP=_mz(z,'text',['class',33,'data-ib-structured-id',1],[],e,s,gg)
var xQ=_oz(z,35,e,s,gg)
_(oP,xQ)
cs.pop()
_(oD,oP)
cs.pop()
}
oD.wxXCkey=1
cs.pop()
_(oB,xC)
cs.push("./pages/index/index.wxml:view:20:4")
var oR=_mz(z,'view',['class',36,'data-ib-structured-id',1],[],e,s,gg)
cs.push("./pages/index/index.wxml:text:21:6")
var fS=_mz(z,'text',['class',38,'data-ib-structured-id',1],[],e,s,gg)
var cT=_oz(z,40,e,s,gg)
_(fS,cT)
cs.pop()
_(oR,fS)
cs.pop()
_(oB,oR)
cs.pop()
_(r,oB)
return r
}
e_[x[0]]={f:m0,j:[],i:[],ti:[],ic:[]}
if(path&&e_[path]){
window.__wxml_comp_version__=0.02
return function(env,dd,global){$gwxc=0;var root={"tag":"wx-page"};root.children=[]
;g="$gwx_XC_0";var main=e_[path].f
cs=[]
if (typeof global==="undefined")global={};global.f=$gdc(f_[path],"",1);
if(typeof(window.__webview_engine_version__)!='undefined'&&window.__webview_engine_version__+1e-6>=0.02+1e-6&&window.__mergeData__)
{
env=window.__mergeData__(env,dd);
}
try{
main(env,{},root,global);
_tsd(root)
if(typeof(window.__webview_engine_version__)=='undefined'|| window.__webview_engine_version__+1e-6<0.01+1e-6){return _ev(root);}
}catch(err){
console.log(cs, env);
console.log(err)
throw err
}
;g="";
return root;
}
}
}
}(__g.a,__g.b,__g.c,__g.d,__g.e,__g.f,__g.g,__g.h,__g.i,__g.j,__g.k,__g.l,__g.m,__g.n,__g.o,__g.p,__g.q,__g.r,__g.s,__g.t,__g.u,__g.v,__g.w,__g.x,__g.y,__g.z,__g.A,__g.B,__g.C,__g.D,__g.E,__g.F,__g.G,__g.H,__g.I,__g.J,__g.K,__g.L,__g.M,__g.N,__g.O,__g.P,__g.Q,__g.R,__g.S,__g.T,__g.U,__g.V,__g.W,__g.X,__g.Y,__g.Z,__g.aa);if(__vd_version_info__.delayedGwx||false)$gwx_XC_0();

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,19 +0,0 @@
#!/bin/bash
root_dir=$(cd `dirname $0`/../../.. && pwd -P)
# pkg_dir="/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/build/mp-weixin"
pkg_dir="/home/msojocs/Documents/we1"
store_dir="$root_dir/test/wcc/ll/1"
# cd "$pkg_dir" && \
# wine "$root_dir/package.nw/js/vendor/wcc.exe" "-d" \
# "--split" ">_<6427" \
# "-xc" "2>_<6427./pages/index/index.wxml>_<64270>_<6427./pages/logs/logs.wxml>_<64270" "./pages/index/index.wxml" "./pages/logs/logs.wxml" \
# "-gn" "\$gwx" \
# "-ll" "./pages/index/index>_<6427./pages/logs/logs"
cd "$pkg_dir" && \
/mnt/disk1/GitHub/wechat-devtools-linux/compiler/wcc "-d" \
"--split" ">_<6427" \
"-xc" "2>_<6427./pages/index/index.wxml>_<64270>_<6427./pages/logs/logs.wxml>_<64270" "./pages/index/index.wxml" "./pages/logs/logs.wxml" \
"-gn" "\$gwx" \
"-ll" "./pages/index/index>_<6427./pages/logs/logs"

View File

@ -1,18 +0,0 @@
#!/bin/bash
# 本脚本用于测试wcc编译器带ll参数时的编译结果
root_dir=$(cd `dirname $0`/../../.. && pwd -P)
# pkg_dir="/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/build/mp-weixin"
pkg_dir="/home/msojocs/Documents/we1"
store_dir="$root_dir/test/wcc/ll/1"
cd "$pkg_dir" && \
"$root_dir/compiler/nodejs/wcc" "-d" "--split" ">_<9657" "-cc" "2>_<9657./pages/index/index.wxml>_<96570>_<9657./pages/logs/logs.wxml>_<96570" "./pages/index/index>_<9657./pages/logs/logs" "./pages/index/index.wxml" "./pages/logs/logs.wxml" "-gn" "\$gwx" \
"-ll" "./pages/index/index>_<7055./pages/logs/logs" \
> "$store_dir/nodejs.json"
diff "$store_dir/wine.json" "$store_dir/nodejs.json" >/dev/null
if [ "$?" == "0" ];then
echo "the file or dir is same!"
else
echo "the file or dir is different!"
fi

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More