mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-22 00:00:04 +08:00
Compare commits
No commits in common. "master" and "v1.05.2203070-2" have entirely different histories.
master
...
v1.05.2203
31
.github/ISSUE_TEMPLATE/--bug.md
vendored
Normal file
31
.github/ISSUE_TEMPLATE/--bug.md
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
name: 报告Bug
|
||||
about: 创建一个问题报告帮助我们做得更好
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**问题描述**
|
||||
请对问题做一个简单描述。
|
||||
|
||||
**问题复现**
|
||||
复现问题需要进行的操作:
|
||||
1. 打开 '...'
|
||||
2. 点击 '....'
|
||||
3. 看到问题
|
||||
|
||||
**期望的效果**
|
||||
经过上述操作你希望得到的结果.
|
||||
|
||||
**截屏**
|
||||
添加截图图片有助于解释您的问题.
|
||||
|
||||
**版本信息 (这是必要的):**
|
||||
- OS: [e.g. iOS]
|
||||
- Package [e.g. xxx_wine.tar.gz]
|
||||
- Wine Version [e.g. 7]
|
||||
|
||||
**额外的信息**
|
||||
一些关于此问题的额外信息.
|
49
.github/ISSUE_TEMPLATE/bug_report.md
vendored
49
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,41 +1,32 @@
|
||||
---
|
||||
name: 报告Bug
|
||||
about: 如果阁下提交的 `issue` 属于bug,但没有按模板提交,那么将会被忽略或删除
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**预先准备**
|
||||
1. 删除 `~/.config/wechat-devtools` 目录,重新打开项目(若发布 `issue` 即默认阁下执行了此操作且问题没有解决);
|
||||
2. HelloWorld是否正常(登录状态新建默认项目,执行复现步骤):正常/不正常
|
||||
3. ***注意:如果你的问题是编译器错误,那么请提供可复现的demo,否则会被直接关闭。***
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**问题描述**
|
||||
<!-- 请对问题做一个简单描述。 -->
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**问题复现**
|
||||
<!-- 复现问题需要进行的操作: -->
|
||||
1. 打开项目
|
||||
2. 点击 '....'
|
||||
3. 看到问题
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**期望的效果**
|
||||
<!-- 经过上述操作你希望得到的结果. -->
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**截屏**
|
||||
<!-- 添加截图图片有助于解释您的问题,请尽量将整个开发工具都涵括在截图在(复制图片后直接粘贴将自动上传图片)。 -->
|
||||
**Version Information (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Package [e.g. xxx_wine.tar.gz]
|
||||
- Wine Version [e.g. 7]
|
||||
|
||||
**版本信息 (这是必要的):**
|
||||
- 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) -->
|
||||
|
||||
**额外的信息**
|
||||
<!-- 一些关于此问题的额外信息。 -->
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
66
.github/workflows/build-deb.yml
vendored
66
.github/workflows/build-deb.yml
vendored
@ -1,66 +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: 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
88
.github/workflows/build-src.yml
vendored
@ -1,88 +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: 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
66
.github/workflows/build-tar.yml
vendored
@ -1,66 +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: 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
|
266
.github/workflows/release.yml
vendored
266
.github/workflows/release.yml
vendored
@ -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 Linux
|
||||
name: Build Packages
|
||||
|
||||
on:
|
||||
release:
|
||||
@ -9,41 +9,253 @@ on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches: [ master, dev, ci, skyline]
|
||||
paths-ignore:
|
||||
- 'README.MD'
|
||||
- 'CHANGELOG.MD'
|
||||
- 'docs/**'
|
||||
branches: [ master, build]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
# # Allows you to run this workflow manually from the Actions tab
|
||||
# workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-src:
|
||||
uses: ./.github/workflows/build-src.yml
|
||||
secrets: inherit
|
||||
build-tar:
|
||||
needs:
|
||||
- build-src
|
||||
uses: ./.github/workflows/build-tar.yml
|
||||
secrets: inherit
|
||||
build:
|
||||
name: Build tar.gz AppImage
|
||||
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 NO_WINE=false
|
||||
export DOCKER_UID=$UID
|
||||
export DOCKER_GID=$GID
|
||||
# tar.gz AppImage
|
||||
ls -l
|
||||
docker-compose up
|
||||
mkdir -p tmp/build
|
||||
tools/build-release.sh ${{ matrix.ARCH }} ${{ steps.tag.outputs.tag }}
|
||||
|
||||
- name: Compress nodegit compiler
|
||||
run: |
|
||||
ls -l
|
||||
cp -r package.nw/node_modules/nodegit tmp/build/nodegit
|
||||
cp -r compiler tmp/build/compiler
|
||||
cd tmp/build
|
||||
ls -l
|
||||
tar -zcf compiler.tar.gz compiler
|
||||
tar -zcf nodegit.tar.gz nodegit
|
||||
rm -rf compiler nodegit
|
||||
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 }}.build
|
||||
path: tmp/build
|
||||
|
||||
build-deb:
|
||||
needs:
|
||||
- build-src
|
||||
uses: ./.github/workflows/build-deb.yml
|
||||
secrets: inherit
|
||||
name: Build Deb Package
|
||||
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: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@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 }}
|
||||
export DOCKER_UID=$UID
|
||||
export DOCKER_GID=$GID
|
||||
export ACTION_MODE=true
|
||||
docker-compose up
|
||||
ls -l
|
||||
mkdir -p tmp/build
|
||||
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
|
||||
|
||||
build-deepin:
|
||||
name: Build Deepin Package
|
||||
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: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@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 Deepin Package
|
||||
run: |
|
||||
export BUILD_VERSION=${{ steps.tag.outputs.tag }}
|
||||
export DOCKER_UID=$UID
|
||||
export DOCKER_GID=$GID
|
||||
export ACTION_MODE=true
|
||||
docker-compose up
|
||||
ls -l
|
||||
mkdir -p tmp/build
|
||||
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
|
||||
|
||||
upload:
|
||||
name: Create release and upload artifacts
|
||||
needs:
|
||||
- build-tar
|
||||
- build
|
||||
- build-deb
|
||||
# - build-snap
|
||||
# - build-arch
|
||||
- build-deepin
|
||||
- build-arch
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v2
|
||||
- name: Inspect directory after downloading artifacts
|
||||
run: ls -alFR
|
||||
|
||||
@ -65,10 +277,9 @@ 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
|
||||
./pyuploadtool-x86_64.AppImage **/WeChat*.AppImage **/*.tar.gz **/*.deb **/*.pkg.*
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
@ -79,6 +290,7 @@ jobs:
|
||||
name: ${{ steps.tag.outputs.name }}
|
||||
tag_name: ${{ steps.tag.outputs.tag }}
|
||||
files: |
|
||||
**build/WeChat*.AppImage
|
||||
**build/*.tar.gz
|
||||
**build/*.deb
|
||||
**/WeChat*.AppImage
|
||||
**/*.tar.gz
|
||||
**/*.deb
|
||||
**/*.pkg.*
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -14,8 +14,4 @@ build
|
||||
appimage-builder-cache
|
||||
wcc.bin
|
||||
wcsc.bin
|
||||
temp.sh
|
||||
# flatpak
|
||||
.flatpak-builder
|
||||
build-dir
|
||||
__pycache__
|
||||
temp.sh
|
6
.vscode/launch.json
vendored
6
.vscode/launch.json
vendored
@ -8,13 +8,13 @@
|
||||
"type": "nwjs",
|
||||
"request": "launch",
|
||||
"name": "Launch NWjs",
|
||||
"nwjsVersion": "0.55.0",
|
||||
"nwjsVersion": "0.47.0",
|
||||
"webRoot": "${workspaceFolder}/package.nw",
|
||||
"reloadAfterAttached": true,
|
||||
"runtimeArgs": [
|
||||
// "--load-extension=${workspaceFolder}/tmp/data/WeappPlugin",
|
||||
"--load-extension=${workspaceFolder}/tmp/data/WeappPlugin",
|
||||
// "--custom-devtools-frontend=file://${workspaceFolder}/tmp/data/WeappPlugin/inspector/",
|
||||
// "--user-data-dir=${workspaceFolder}/tmp/data",
|
||||
"--user-data-dir=${workspaceFolder}/tmp/data",
|
||||
// "--remote-debugging-port=9999"
|
||||
],
|
||||
"env": {
|
||||
|
10
.vscode/settings.json
vendored
10
.vscode/settings.json
vendored
@ -1,10 +0,0 @@
|
||||
{
|
||||
"files.watcherExclude": {
|
||||
"**/.git/objects/**": true,
|
||||
"**/.git/subtree-cache/**": true,
|
||||
"**/node_modules/*/**": true,
|
||||
"**/.hg/store/**": true,
|
||||
".flatpak/**": true,
|
||||
"_build/**": true
|
||||
}
|
||||
}
|
261
CHANGELOG.MD
261
CHANGELOG.MD
@ -1,261 +0,0 @@
|
||||
# 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
218
README.MD
@ -1,218 +0,0 @@
|
||||
|
||||
|
||||
<div align="center">
|
||||
|
||||
<img src="./res/icons/512x512.png" height="100px" width="100px"/>
|
||||
|
||||
<h3>微信开发者工具 Linux版</h3>
|
||||
<br>
|
||||
|
||||
----
|
||||
|
||||
[](https://github.com/msojocs/wechat-devtools-linux/actions/workflows/release.yml)
|
||||
[](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
|
||||
[](https://nwjs.io/downloads/)
|
||||
[](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.23,libstdc++ 的版本要求>=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
|
||||

|
||||
|
||||
版本 1.03.2006090
|
||||

|
||||
|
||||
版本 1.02.2001191
|
||||

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

|
||||
|
||||
# 感谢赞赏支持
|
||||
|
||||
时间倒序
|
||||
|
||||
| 赞赏人 | 赞赏 | 时间 |
|
||||
|-------|---------|-----|
|
||||
| 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
|
||||
|
||||
[](https://starchart.cc/msojocs/wechat-web-devtools-linux)
|
@ -1,12 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
root_dir="$( cd -P "$( dirname "$SOURCE" )"/.. >/dev/null 2>&1 && pwd )"
|
||||
root_dir=$(cd `dirname $0`/.. && pwd -P)
|
||||
|
||||
# 数据目录处理
|
||||
if [ -z $XDG_CONFIG_HOME ];then
|
||||
@ -15,29 +9,15 @@ else
|
||||
DATA_DIR=$XDG_CONFIG_HOME
|
||||
fi
|
||||
|
||||
# 获取App名称
|
||||
APP_NAME=$( cat "$root_dir/package.nw/package.json" | grep -Eo 'name":".*","main' )
|
||||
APP_NAME=${APP_NAME//name\":\"/}
|
||||
APP_NAME=${APP_NAME//\",\"main/}
|
||||
|
||||
export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs"
|
||||
export APPDATA="$DATA_DIR/$APP_NAME"
|
||||
export PATH="$root_dir/node/bin:$root_dir/nwjs:$PATH"
|
||||
export USERPROFILE=$APPDATA
|
||||
|
||||
# SNAP
|
||||
# if [ -n $SNAP ];then
|
||||
# if [ ! -f $DATA_DIR/nacl_irt_x86_64.nexe ];then
|
||||
# # 解压
|
||||
# tar -zxf $root_dir/nwjs/nacl_irt_x86_64.nexe.tar.gz -C $APPDATA/nacl_irt_x86_64.nexe
|
||||
# fi
|
||||
# fi
|
||||
export APPDATA="$DATA_DIR/wechat_devtools"
|
||||
export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH"
|
||||
export USERPROFILE=$DATA_DIR
|
||||
|
||||
clean_cache() {
|
||||
echo "清理缓存";
|
||||
rm -rf "$APPDATA/WeappCache";
|
||||
rm -rf "$APPDATA/WeappVendor";
|
||||
rm -rf "$DATA_DIR/wechat_devtools"
|
||||
}
|
||||
|
||||
# 检测是否有清除缓存的必要
|
||||
@ -53,11 +33,11 @@ else
|
||||
fi;
|
||||
|
||||
EXTENSION1="--load-extension=$root_dir/nwjs/package.nw/js/ideplugin"
|
||||
EXTENSION2="--load-extension=$APPDATA/WeappPlugin/inspector"
|
||||
EXTENSION2=--load-extension=$APPDATA/WeappPlugin
|
||||
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 $EXTENSION1 $INSPECTOR1 "$@"
|
||||
exec "$root_dir/nwjs/nw" $root_dir/package.nw $EXTENSION2 $INSPECTOR1 "$@"
|
@ -6,16 +6,12 @@ while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symli
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
root_dir="$( cd -P "$( dirname "$SOURCE" )"/.. >/dev/null 2>&1 && pwd )"
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
cd $root_dir/bin
|
||||
cd $DIR/..
|
||||
|
||||
export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs"
|
||||
export APPDATA="$root_dir/nwjs"
|
||||
export PATH="$root_dir/node/bin:$root_dir/nwjs:$PATH"
|
||||
export WECHAT_DEVTOOLS_DIR="$DIR/../nwjs"
|
||||
export APPDATA="$DIR/../nwjs"
|
||||
export PATH="$DIR/../wine:$DIR/../node/bin:$DIR/../nwjs:$PATH"
|
||||
|
||||
node $root_dir/package.nw/js/common/cli/index.js "$@"
|
||||
if [ ! -z "$APPIMAGE" ];then
|
||||
# AppImage在程序退出后会删除相关程序文件,导致无法启动
|
||||
tail -f /etc/issue
|
||||
fi
|
||||
$DIR/../tools/wechat-devtools-cli "$@"
|
||||
|
14
bin/wechat-devtools-docker
Executable file
14
bin/wechat-devtools-docker
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
xhost +
|
||||
|
||||
docker run \
|
||||
-t -i --rm \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v $HOME/.Xauthority:/root/.Xauthority \
|
||||
-e DISPLAY=unix:0.0 \
|
||||
-e GDK_SCALE \
|
||||
-e GDK_DPI_SCALE \
|
||||
--privileged \
|
||||
wechat-devtools /opt/wechat/devtools/bin/docker-entrypoint
|
||||
|
84
compiler/generatemd5.js
Normal file
84
compiler/generatemd5.js
Normal file
@ -0,0 +1,84 @@
|
||||
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)
|
629
compiler/nodejs/wcc
Executable file
629
compiler/nodejs/wcc
Executable file
File diff suppressed because one or more lines are too long
83
compiler/nodejs/wcsc
Executable file
83
compiler/nodejs/wcsc
Executable file
@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env node
|
||||
// wcsc.exe md5 = "3999c590c57c764b152bc6db3b3288c4"
|
||||
const version = "20220308";
|
||||
const { spawn } = require("child_process");
|
||||
const path = require("path");
|
||||
const args = process.argv.slice(2);
|
||||
const wcscPath = path.resolve(__dirname, "./wcsc.bin");
|
||||
|
||||
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) {
|
||||
const str = Buffer.concat(spwanData)
|
||||
.toString()
|
||||
.replace(/\\\\/g, "\\\\u005c");
|
||||
const resultSplit = encode1(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,}/gi,
|
||||
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);
|
||||
String.prototype.splice = function (start, newStr) {
|
||||
return this.slice(0, start) + newStr + this.slice(start + 1);
|
||||
};
|
||||
result = result.replace(/\\\\/g, "\\");
|
||||
result = result.replace(/\\[\s\S]{1}/gi, function ($0, $1, $2) {
|
||||
const c = $0 === "\\n" ? "\n" : $0[1];
|
||||
return "\\u" + c.charCodeAt(0).toString(16).padStart(4, "0");
|
||||
});
|
||||
process.stdout.write(result);
|
||||
} else {
|
||||
process.stderr.write(Buffer.concat(errData).toString());
|
||||
process.exitCode = n;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const wcsc = spawn(wcscPath, args, {
|
||||
cwd: process.cwd(),
|
||||
stdio: "inherit",
|
||||
});
|
||||
wcsc.on("close", (code) => {
|
||||
process.exitCode = code;
|
||||
});
|
||||
}
|
26
compiler/test/wcc/1/options.json
Normal file
26
compiler/test/wcc/1/options.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"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"
|
||||
}
|
1117
compiler/test/wcc/1/result-bin.js
Normal file
1117
compiler/test/wcc/1/result-bin.js
Normal file
File diff suppressed because it is too large
Load Diff
1258
compiler/test/wcc/1/result-node.js
Normal file
1258
compiler/test/wcc/1/result-node.js
Normal file
File diff suppressed because it is too large
Load Diff
25
compiler/test/wcc/2/options.json
Normal file
25
compiler/test/wcc/2/options.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"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"
|
||||
}
|
1258
compiler/test/wcc/2/result-node.js
Normal file
1258
compiler/test/wcc/2/result-node.js
Normal file
File diff suppressed because it is too large
Load Diff
26
compiler/test/wcc/3/options.json
Normal file
26
compiler/test/wcc/3/options.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"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"
|
||||
}
|
1258
compiler/test/wcc/3/result-node.js
Normal file
1258
compiler/test/wcc/3/result-node.js
Normal file
File diff suppressed because it is too large
Load Diff
150
compiler/test/wcc/4/options.json
Normal file
150
compiler/test/wcc/4/options.json
Normal file
File diff suppressed because one or more lines are too long
10958
compiler/test/wcc/4/result-node.js
Normal file
10958
compiler/test/wcc/4/result-node.js
Normal file
File diff suppressed because one or more lines are too long
1023
compiler/test/wcc/common.js
Normal file
1023
compiler/test/wcc/common.js
Normal file
File diff suppressed because it is too large
Load Diff
1251
compiler/test/wcc/lla/1/linux_output.js
Normal file
1251
compiler/test/wcc/lla/1/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
1
compiler/test/wcc/lla/1/nodejs.json
Normal file
1
compiler/test/wcc/lla/1/nodejs.json
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/lla/1/wine.json
Normal file
1
compiler/test/wcc/lla/1/wine.json
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/lla/2/common_node.js
Normal file
1
compiler/test/wcc/lla/2/common_node.js
Normal file
File diff suppressed because one or more lines are too long
5
compiler/test/wcc/lla/2/common_wine.js
Normal file
5
compiler/test/wcc/lla/2/common_wine.js
Normal file
File diff suppressed because one or more lines are too long
4223
compiler/test/wcc/lla/2/linux_output.js
Normal file
4223
compiler/test/wcc/lla/2/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
1
compiler/test/wcc/lla/2/nodejs.json
Normal file
1
compiler/test/wcc/lla/2/nodejs.json
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/lla/2/wine.json
Normal file
1
compiler/test/wcc/lla/2/wine.json
Normal file
File diff suppressed because one or more lines are too long
1416
compiler/test/wcc/lla/3/linux_output.js
Normal file
1416
compiler/test/wcc/lla/3/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
26
compiler/test/wcc/lla/3/log.md
Normal file
26
compiler/test/wcc/lla/3/log.md
Normal file
@ -0,0 +1,26 @@
|
||||
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]]={}
|
26
compiler/test/wcc/lla/3/node_output.json
Normal file
26
compiler/test/wcc/lla/3/node_output.json
Normal file
File diff suppressed because one or more lines are too long
0
compiler/test/wcc/lla/3/node_stderr.json
Normal file
0
compiler/test/wcc/lla/3/node_stderr.json
Normal file
26
compiler/test/wcc/lla/3/wine_output.json
Normal file
26
compiler/test/wcc/lla/3/wine_output.json
Normal file
File diff suppressed because one or more lines are too long
3206
compiler/test/wcc/lla/4/linux_output.js
Normal file
3206
compiler/test/wcc/lla/4/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
76
compiler/test/wcc/lla/4/node_output.json
Normal file
76
compiler/test/wcc/lla/4/node_output.json
Normal file
File diff suppressed because one or more lines are too long
86
compiler/test/wcc/lla/4/node_stderr.json
Normal file
86
compiler/test/wcc/lla/4/node_stderr.json
Normal file
@ -0,0 +1,86 @@
|
||||
./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
|
||||
}
|
76
compiler/test/wcc/lla/4/wine_output.json
Normal file
76
compiler/test/wcc/lla/4/wine_output.json
Normal file
File diff suppressed because one or more lines are too long
0
compiler/test/wcc/lla/LOG.MD
Normal file
0
compiler/test/wcc/lla/LOG.MD
Normal file
138
compiler/test/wcc/lla/lla3.js
Normal file
138
compiler/test/wcc/lla/lla3.js
Normal file
@ -0,0 +1,138 @@
|
||||
#!/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();
|
172
compiler/test/wcc/lla/lla4.js
Normal file
172
compiler/test/wcc/lla/lla4.js
Normal file
@ -0,0 +1,172 @@
|
||||
#!/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();
|
59
compiler/test/wcc/lla/t.js
Normal file
59
compiler/test/wcc/lla/t.js
Normal file
@ -0,0 +1,59 @@
|
||||
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`
|
||||
);
|
20
compiler/test/wcc/lla1.sh
Normal file
20
compiler/test/wcc/lla1.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/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
|
23
compiler/test/wcc/lla2.sh
Normal file
23
compiler/test/wcc/lla2.sh
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/llw/1/nodejs.json
Normal file
1
compiler/test/wcc/llw/1/nodejs.json
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/llw/1/wine.json
Normal file
1
compiler/test/wcc/llw/1/wine.json
Normal file
File diff suppressed because one or more lines are too long
2
compiler/test/wcc/llw/2/common_node.js
Normal file
2
compiler/test/wcc/llw/2/common_node.js
Normal file
File diff suppressed because one or more lines are too long
2
compiler/test/wcc/llw/2/common_wine.js
Normal file
2
compiler/test/wcc/llw/2/common_wine.js
Normal file
File diff suppressed because one or more lines are too long
10939
compiler/test/wcc/llw/2/linux_output.js
Normal file
10939
compiler/test/wcc/llw/2/linux_output.js
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/llw/2/nodejs.json
Normal file
1
compiler/test/wcc/llw/2/nodejs.json
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/llw/2/wine.json
Normal file
1
compiler/test/wcc/llw/2/wine.json
Normal file
File diff suppressed because one or more lines are too long
2407
compiler/test/wcc/llw/3/linux_output.js
Normal file
2407
compiler/test/wcc/llw/3/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
6
compiler/test/wcc/llw/3/log.md
Normal file
6
compiler/test/wcc/llw/3/log.md
Normal file
@ -0,0 +1,6 @@
|
||||
x 元素个数:13
|
||||
第6、7 npm 下标5、6
|
||||
|
||||
gz1 - gz11
|
||||
m0 - m10
|
||||
XC_0 - XC_
|
26
compiler/test/wcc/llw/3/node_output.json
Normal file
26
compiler/test/wcc/llw/3/node_output.json
Normal file
File diff suppressed because one or more lines are too long
26
compiler/test/wcc/llw/3/wine_output.json
Normal file
26
compiler/test/wcc/llw/3/wine_output.json
Normal file
File diff suppressed because one or more lines are too long
9052
compiler/test/wcc/llw/4/linux_output.js
Normal file
9052
compiler/test/wcc/llw/4/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
81
compiler/test/wcc/llw/4/node_output.json
Normal file
81
compiler/test/wcc/llw/4/node_output.json
Normal file
File diff suppressed because one or more lines are too long
86
compiler/test/wcc/llw/4/node_stderr.json
Normal file
86
compiler/test/wcc/llw/4/node_stderr.json
Normal file
@ -0,0 +1,86 @@
|
||||
./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
|
||||
}
|
81
compiler/test/wcc/llw/4/wine_output.json
Normal file
81
compiler/test/wcc/llw/4/wine_output.json
Normal file
File diff suppressed because one or more lines are too long
26
compiler/test/wcc/llw/LOG.MD
Normal file
26
compiler/test/wcc/llw/LOG.MD
Normal file
@ -0,0 +1,26 @@
|
||||
# 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();
|
10
compiler/test/wcc/llw/common.js
Normal file
10
compiler/test/wcc/llw/common.js
Normal file
File diff suppressed because one or more lines are too long
1
compiler/test/wcc/llw/index.js
Normal file
1
compiler/test/wcc/llw/index.js
Normal file
File diff suppressed because one or more lines are too long
130
compiler/test/wcc/llw/llw3.js
Normal file
130
compiler/test/wcc/llw/llw3.js
Normal file
@ -0,0 +1,130 @@
|
||||
#!/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();
|
168
compiler/test/wcc/llw/llw4.js
Normal file
168
compiler/test/wcc/llw/llw4.js
Normal file
@ -0,0 +1,168 @@
|
||||
#!/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();
|
1
compiler/test/wcc/llw/logs.js
Normal file
1
compiler/test/wcc/llw/logs.js
Normal file
@ -0,0 +1 @@
|
||||
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();
|
1266
compiler/test/wcc/llw/nodejs copy.js
Normal file
1266
compiler/test/wcc/llw/nodejs copy.js
Normal file
File diff suppressed because it is too large
Load Diff
0
compiler/test/wcc/llw/nodejs.json
Normal file
0
compiler/test/wcc/llw/nodejs.json
Normal file
16
compiler/test/wcc/llw/t.js
Normal file
16
compiler/test/wcc/llw/t.js
Normal file
@ -0,0 +1,16 @@
|
||||
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]')
|
1
compiler/test/wcc/llw/wine.json
Normal file
1
compiler/test/wcc/llw/wine.json
Normal file
File diff suppressed because one or more lines are too long
22
compiler/test/wcc/llw1.sh
Normal file
22
compiler/test/wcc/llw1.sh
Normal file
@ -0,0 +1,22 @@
|
||||
#!/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
|
157
compiler/test/wcc/llw2.js
Normal file
157
compiler/test/wcc/llw2.js
Normal file
@ -0,0 +1,157 @@
|
||||
#!/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();
|
23
compiler/test/wcc/llw2.sh
Normal file
23
compiler/test/wcc/llw2.sh
Normal file
File diff suppressed because one or more lines are too long
186
compiler/test/wcc/viewedit/1/index.js
Normal file
186
compiler/test/wcc/viewedit/1/index.js
Normal file
@ -0,0 +1,186 @@
|
||||
$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();
|
1251
compiler/test/wcc/viewedit/1/linux_output.js
Normal file
1251
compiler/test/wcc/viewedit/1/linux_output.js
Normal file
File diff suppressed because it is too large
Load Diff
12
compiler/test/wcc/viewedit/1/node.json
Normal file
12
compiler/test/wcc/viewedit/1/node.json
Normal file
File diff suppressed because one or more lines are too long
12
compiler/test/wcc/viewedit/1/nodejs.json
Normal file
12
compiler/test/wcc/viewedit/1/nodejs.json
Normal file
File diff suppressed because one or more lines are too long
12
compiler/test/wcc/viewedit/1/wine.json
Normal file
12
compiler/test/wcc/viewedit/1/wine.json
Normal file
File diff suppressed because one or more lines are too long
19
compiler/test/wcc/viewedit/ll.sh
Normal file
19
compiler/test/wcc/viewedit/ll.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/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"
|
18
compiler/test/wcc/viewedit/ll1.sh
Normal file
18
compiler/test/wcc/viewedit/ll1.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/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
|
12
compiler/test/wcc/viewedit/result.json
Normal file
12
compiler/test/wcc/viewedit/result.json
Normal file
File diff suppressed because one or more lines are too long
21
compiler/test/wcc/viewedit/wcc.js
Normal file
21
compiler/test/wcc/viewedit/wcc.js
Normal file
@ -0,0 +1,21 @@
|
||||
const wcc = require('../../../package.nw/node_modules/wcc')
|
||||
const fs = require('fs')
|
||||
|
||||
const options = {
|
||||
"files": ["./pages/index/index.wxml", "./pages/logs/logs.wxml"],
|
||||
"debugWXS": false,
|
||||
"debug": true,
|
||||
"genfuncname": "$gwx",
|
||||
"wxmlCompileConfig": "2>_<7055./pages/index/index.wxml>_<70550>_<7055./pages/logs/logs.wxml>_<70550",
|
||||
"wxmlCompileConfigSplit": ">_<7055",
|
||||
"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"
|
||||
},
|
||||
"cwd": "/home/msojocs/Documents/we1",
|
||||
"lazyloadConfig": "./pages/index/index>_<7055./pages/logs/logs"
|
||||
}
|
||||
wcc(options)
|
||||
.then(res=>{
|
||||
console.log(res)
|
||||
fs.writeFileSync('test/wcc/viewedit/1/node.json', res)
|
||||
})
|
15
compiler/test/wcsc/3/node_output.json
Normal file
15
compiler/test/wcsc/3/node_output.json
Normal file
File diff suppressed because one or more lines are too long
15
compiler/test/wcsc/3/wine_output.json
Normal file
15
compiler/test/wcsc/3/wine_output.json
Normal file
File diff suppressed because one or more lines are too long
0
compiler/test/wcsc/compare/nodejs.json
Normal file
0
compiler/test/wcsc/compare/nodejs.json
Normal file
1091
compiler/test/wcsc/compare/wine.json
Normal file
1091
compiler/test/wcsc/compare/wine.json
Normal file
File diff suppressed because it is too large
Load Diff
12
compiler/test/wcsc/ll.sh
Normal file
12
compiler/test/wcsc/ll.sh
Normal file
@ -0,0 +1,12 @@
|
||||
#!/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"
|
||||
|
||||
cd "$pkg_dir" && \
|
||||
wine $root_dir/package.nw/js/vendor/wcsc.exe "-db" "-pc" "54" "./pages/login/login.wxss" "./pages/index/index.wxss" "./pages/articleView/articleView.wxss" "./pages/calendar/calendar.wxss" "./pages/card/card.wxss" "./pages/checkIn/edit.wxss" "./pages/checkIn/list.wxss" "./pages/courseTable/courseTable.wxss" "./pages/courseTable/imgCropper/imgCropper.wxss" "./pages/exam/exam.wxss" "./pages/grade/grade.wxss" "./pages/laboratory/list.wxss" "./pages/laboratory/detail.wxss" "./pages/maintenance/maintenance.wxss" "./pages/my/ADMag/ADMag.wxss" "./pages/my/ADMag/watchAD/watchAD.wxss" "./pages/my/dataMag/dataMag.wxss" "./pages/my/my.wxss" "./pages/my/sub/sub.wxss" "./pages/my/sso/sso.wxss" "./pages/newsList/newsList.wxss" "./pages/officeGrade/query.wxss" "./pages/THEOL/dir/dir.wxss" "./pages/THEOL/THEOL.wxss" "./pages/THEOL/tree/tree.wxss" "./pages/auth/auth.wxss" "./pages/my/bind/bind.wxss" "./pages/my/register/register.wxss" "./pages/my/bind/mini.wxss" "./pages/terms/privacy.wxss" "./pages/resources/list.wxss" "./pages/my/about.wxss" "./components/beat-char/beat-char.wxss" "./components/card.wxss" "./components/mytree/mytree.wxss" "./components/scroll/index.wxss" "./components/tab/index.wxss" "./miniprogram_npm/weui-miniprogram/cell/cell.wxss" "./miniprogram_npm/weui-miniprogram/cells/cells.wxss" "./miniprogram_npm/weui-miniprogram/loading/loading.wxss" "./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html.wxss" "./node-modules/mp-html/dist/uni-app/components/mp-html/node/node.wxss" "./pages/my/info.wxss" "./uni_modules/uni-card/components/uni-card/uni-card.wxss" "./uni_modules/uni-icons/components/uni-icons/uni-icons.wxss" "./uni_modules/uni-row/components/uni-col/uni-col.wxss" "./uni_modules/uni-row/components/uni-row/uni-row.wxss" "./uni_modules/uni-title/components/uni-title/uni-title.wxss" "./wxcomponents/dynamicForm/components/timePicker/timePicker.wxss" "./wxcomponents/dynamicForm/index.wxss" "./wxcomponents/dynamicForm/vant/icon/index.wxss" "./wxcomponents/dynamicForm/vant/info/index.wxss" "./wxcomponents/dynamicForm/vant/uploader/index.wxss" "./wxcomponents/image-cropper/image-cropper.wxss" "./app.wxss" "./common/main.wxss" "./wxcomponents/dynamicForm/components/timePicker/timePicker-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/common/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/common/index.wxss" "./wxcomponents/dynamicForm/vant/icon/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/info/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/uploader/index-wxa-auto-dark.wxss" "-ll" > $root_dir/test/wcsc/compare/wine.json
|
||||
|
||||
echo "==================="
|
||||
|
||||
cd "$pkg_dir" && \
|
||||
$root_dir/compiler/nodejs/wcsc "-db" "-pc" "54" "./pages/login/login.wxss" "./pages/index/index.wxss" "./pages/articleView/articleView.wxss" "./pages/calendar/calendar.wxss" "./pages/card/card.wxss" "./pages/checkIn/edit.wxss" "./pages/checkIn/list.wxss" "./pages/courseTable/courseTable.wxss" "./pages/courseTable/imgCropper/imgCropper.wxss" "./pages/exam/exam.wxss" "./pages/grade/grade.wxss" "./pages/laboratory/list.wxss" "./pages/laboratory/detail.wxss" "./pages/maintenance/maintenance.wxss" "./pages/my/ADMag/ADMag.wxss" "./pages/my/ADMag/watchAD/watchAD.wxss" "./pages/my/dataMag/dataMag.wxss" "./pages/my/my.wxss" "./pages/my/sub/sub.wxss" "./pages/my/sso/sso.wxss" "./pages/newsList/newsList.wxss" "./pages/officeGrade/query.wxss" "./pages/THEOL/dir/dir.wxss" "./pages/THEOL/THEOL.wxss" "./pages/THEOL/tree/tree.wxss" "./pages/auth/auth.wxss" "./pages/my/bind/bind.wxss" "./pages/my/register/register.wxss" "./pages/my/bind/mini.wxss" "./pages/terms/privacy.wxss" "./pages/resources/list.wxss" "./pages/my/about.wxss" "./components/beat-char/beat-char.wxss" "./components/card.wxss" "./components/mytree/mytree.wxss" "./components/scroll/index.wxss" "./components/tab/index.wxss" "./miniprogram_npm/weui-miniprogram/cell/cell.wxss" "./miniprogram_npm/weui-miniprogram/cells/cells.wxss" "./miniprogram_npm/weui-miniprogram/loading/loading.wxss" "./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html.wxss" "./node-modules/mp-html/dist/uni-app/components/mp-html/node/node.wxss" "./pages/my/info.wxss" "./uni_modules/uni-card/components/uni-card/uni-card.wxss" "./uni_modules/uni-icons/components/uni-icons/uni-icons.wxss" "./uni_modules/uni-row/components/uni-col/uni-col.wxss" "./uni_modules/uni-row/components/uni-row/uni-row.wxss" "./uni_modules/uni-title/components/uni-title/uni-title.wxss" "./wxcomponents/dynamicForm/components/timePicker/timePicker.wxss" "./wxcomponents/dynamicForm/index.wxss" "./wxcomponents/dynamicForm/vant/icon/index.wxss" "./wxcomponents/dynamicForm/vant/info/index.wxss" "./wxcomponents/dynamicForm/vant/uploader/index.wxss" "./wxcomponents/image-cropper/image-cropper.wxss" "./app.wxss" "./common/main.wxss" "./wxcomponents/dynamicForm/components/timePicker/timePicker-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/common/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/common/index.wxss" "./wxcomponents/dynamicForm/vant/icon/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/info/index-wxa-auto-dark.wxss" "./wxcomponents/dynamicForm/vant/uploader/index-wxa-auto-dark.wxss" "-ll" > $root_dir/test/wcsc/compare/nodejs.json
|
127
compiler/test/wcsc/ll3.js
Normal file
127
compiler/test/wcsc/ll3.js
Normal file
@ -0,0 +1,127 @@
|
||||
#!/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 = [
|
||||
"-db",
|
||||
"-pc",
|
||||
"9",
|
||||
"./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",
|
||||
];
|
||||
|
||||
const test_wine = () => {
|
||||
const wine = spawn(
|
||||
path.resolve(__dirname, "../../../package.nw/js/vendor/wcsc.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/wcsc"),
|
||||
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();
|
1
compiler/test/wcsc/viewedit/1/linux_output.js
Normal file
1
compiler/test/wcsc/viewedit/1/linux_output.js
Normal file
File diff suppressed because one or more lines are too long
60
compiler/test/wcsc/viewedit/1/node.json
Normal file
60
compiler/test/wcsc/viewedit/1/node.json
Normal file
File diff suppressed because one or more lines are too long
60
compiler/test/wcsc/viewedit/1/result.json
Normal file
60
compiler/test/wcsc/viewedit/1/result.json
Normal file
File diff suppressed because one or more lines are too long
103
compiler/test/wcsc/viewedit/wcsc_test.js
Normal file
103
compiler/test/wcsc/viewedit/wcsc_test.js
Normal file
@ -0,0 +1,103 @@
|
||||
const wcsc = require("../../../package.nw/node_modules/wcsc");
|
||||
const fs = require("fs");
|
||||
|
||||
let options = {
|
||||
files: ["./pages/index/index.wxss", "./pages/logs/logs.wxss", "./app.wxss"],
|
||||
contents: [
|
||||
"/**index.wxss**/\n.userinfo {\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #aaa;\n}\n\n.userinfo-avatar {\n overflow: hidden;\n width: 128rpx;\n height: 128rpx;\n margin: 20rpx;\n border-radius: 50%;\n}\n\n.usermotto {\n margin-top: 200px;\n}",
|
||||
".log-list {\n display: flex;\n flex-direction: column;\n padding: 40rpx;\n}\n.log-item {\n margin: 10rpx;\n}\n",
|
||||
"/**app.wxss**/\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n padding: 200rpx 0;\n box-sizing: border-box;\n} \n",
|
||||
],
|
||||
pageCount: 2,
|
||||
cwd: "/home/msojocs/Documents/we1",
|
||||
replaceContent: {
|
||||
"./pages/index/index.wxss":
|
||||
"/**index.wxss**/\n.userinfo {\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #aaa;\n}\n\n.userinfo-avatar {\n overflow: hidden;\n width: 128rpx;\n height: 128rpx;\n margin: 20rpx;\n border-radius: 50%;\n}\n\n.usermotto {\n margin-top: 200px;\n}",
|
||||
},
|
||||
debug: true,
|
||||
classPrefix: "",
|
||||
lazyload: false,
|
||||
};
|
||||
options = {
|
||||
pageCount: 54,
|
||||
files: [
|
||||
"./pages/login/login.wxss",
|
||||
"./pages/index/index.wxss",
|
||||
"./pages/articleView/articleView.wxss",
|
||||
"./pages/calendar/calendar.wxss",
|
||||
"./pages/card/card.wxss",
|
||||
"./pages/checkIn/edit.wxss",
|
||||
"./pages/checkIn/list.wxss",
|
||||
"./pages/courseTable/courseTable.wxss",
|
||||
"./pages/courseTable/imgCropper/imgCropper.wxss",
|
||||
"./pages/exam/exam.wxss",
|
||||
"./pages/grade/grade.wxss",
|
||||
"./pages/laboratory/list.wxss",
|
||||
"./pages/laboratory/detail.wxss",
|
||||
"./pages/maintenance/maintenance.wxss",
|
||||
"./pages/my/ADMag/ADMag.wxss",
|
||||
"./pages/my/ADMag/watchAD/watchAD.wxss",
|
||||
"./pages/my/dataMag/dataMag.wxss",
|
||||
"./pages/my/my.wxss",
|
||||
"./pages/my/sub/sub.wxss",
|
||||
"./pages/my/sso/sso.wxss",
|
||||
"./pages/newsList/newsList.wxss",
|
||||
"./pages/officeGrade/query.wxss",
|
||||
"./pages/THEOL/dir/dir.wxss",
|
||||
"./pages/THEOL/THEOL.wxss",
|
||||
"./pages/THEOL/tree/tree.wxss",
|
||||
"./pages/auth/auth.wxss",
|
||||
"./pages/my/bind/bind.wxss",
|
||||
"./pages/my/register/register.wxss",
|
||||
"./pages/my/bind/mini.wxss",
|
||||
"./pages/terms/privacy.wxss",
|
||||
"./pages/resources/list.wxss",
|
||||
"./pages/my/about.wxss",
|
||||
"./components/card.wxss",
|
||||
"./components/beat-char/beat-char.wxss",
|
||||
"./components/mytree/mytree.wxss",
|
||||
"./components/scroll/index.wxss",
|
||||
"./components/tab/index.wxss",
|
||||
"./miniprogram_npm/weui-miniprogram/cell/cell.wxss",
|
||||
"./miniprogram_npm/weui-miniprogram/cells/cells.wxss",
|
||||
"./miniprogram_npm/weui-miniprogram/loading/loading.wxss",
|
||||
"./node-modules/mp-html/dist/uni-app/components/mp-html/mp-html.wxss",
|
||||
"./node-modules/mp-html/dist/uni-app/components/mp-html/node/node.wxss",
|
||||
"./pages/my/info.wxss",
|
||||
"./uni_modules/uni-card/components/uni-card/uni-card.wxss",
|
||||
"./uni_modules/uni-icons/components/uni-icons/uni-icons.wxss",
|
||||
"./uni_modules/uni-row/components/uni-col/uni-col.wxss",
|
||||
"./uni_modules/uni-row/components/uni-row/uni-row.wxss",
|
||||
"./uni_modules/uni-title/components/uni-title/uni-title.wxss",
|
||||
"./wxcomponents/dynamicForm/index.wxss",
|
||||
"./wxcomponents/dynamicForm/components/timePicker/timePicker.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/icon/index.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/info/index.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/uploader/index.wxss",
|
||||
"./wxcomponents/image-cropper/image-cropper.wxss",
|
||||
"./app.wxss",
|
||||
"./common/main.wxss",
|
||||
"./wxcomponents/dynamicForm/index-wxa-auto-dark.wxss",
|
||||
"./wxcomponents/dynamicForm/components/timePicker/timePicker-wxa-auto-dark.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/common/index-wxa-auto-dark.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/common/index.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/icon/index-wxa-auto-dark.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/info/index-wxa-auto-dark.wxss",
|
||||
"./wxcomponents/dynamicForm/vant/uploader/index-wxa-auto-dark.wxss",
|
||||
],
|
||||
cwd: "/mnt/disk1/Project/WeCuit-Project/WeCuit-Mini-uni-test_uni_vue-cli/dist/build/mp-weixin",
|
||||
lazyload: true,
|
||||
replaceContent: {
|
||||
"./pages/login/login.wxss":
|
||||
".login-page.data-v-53bada72{display:flex;flex-direction:column;justify-content:flex-end;height:100vh}.logo-area.data-v-53bada72{display:flex;justify-content:center;height:80%}.logo.data-v-53bada72{display:flex;align-items:center}.logo-item.data-v-53bada72{height:200rpx;width:200rpx;border-radius:calc(50%)}.login-area.data-v-53bada72{display:flex;justify-content:center;align-items:center;margin:50rpx}.loading.data-v-53bada72{margin-top:5rpx;margin-right:10rpx;transform-origin:center center;-webkit-animation:rotate-data-v-53bada72 1s linear infinite;animation:rotate-data-v-53bada72 1s linear infinite}@-webkit-keyframes rotate-data-v-53bada72{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(1turn)}}@keyframes rotate-data-v-53bada72{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(1turn)}}",
|
||||
},
|
||||
|
||||
debug: true,
|
||||
};
|
||||
wcsc(options).then((res) => {
|
||||
// console.log(res);
|
||||
fs.writeFileSync(
|
||||
"test/wcsc/viewedit/1/node.json",
|
||||
JSON.stringify(res, null, 2)
|
||||
);
|
||||
});
|
BIN
compiler/wcc
Executable file
BIN
compiler/wcc
Executable file
Binary file not shown.
93
compiler/wcc_node/index.js
Normal file
93
compiler/wcc_node/index.js
Normal file
@ -0,0 +1,93 @@
|
||||
const util = require('./util')
|
||||
const path = require('path')
|
||||
|
||||
let wcc
|
||||
try {
|
||||
wcc = require('./src/wcc')
|
||||
} catch (err) {
|
||||
console.error('wcc', err)
|
||||
// wcc = require('./build/Release/wcc.node')
|
||||
}
|
||||
|
||||
const fs = util.fs
|
||||
|
||||
exports = async function (options) {
|
||||
if (!options) throw Error('options is required')
|
||||
|
||||
const lazyload = !!options.lazyloadConfig
|
||||
|
||||
options = Object.assign(
|
||||
{
|
||||
files: [], // FILES
|
||||
contents: [],
|
||||
replaceContent: {},
|
||||
verbose: false,
|
||||
debug: false, // -d
|
||||
debugWXS: false, // -ds
|
||||
showNewTree: false,
|
||||
isPlugin: false,
|
||||
addTestAttre: false,
|
||||
independent: false,
|
||||
genfuncname: '$gwx', // -gn
|
||||
isCut: false, // --split
|
||||
cwd: process.cwd,
|
||||
debug: false,
|
||||
lazyload, // -ll
|
||||
lazyloadConfig: '',
|
||||
},
|
||||
options,
|
||||
)
|
||||
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let st = Date.now()
|
||||
|
||||
// 获取文件内容
|
||||
if (!options.contents.length) {
|
||||
const tasks = options.files.map((file) => {
|
||||
if (typeof options.replaceContent[file] === 'string') {
|
||||
return options.replaceContent[file]
|
||||
}
|
||||
return fs.readFile(path.resolve(options.cwd, file), 'utf8')
|
||||
})
|
||||
options.contents = await Promise.all(tasks) || []
|
||||
}
|
||||
// console.warn('wcc get files', Date.now() - st, options.contents)
|
||||
let result
|
||||
try {
|
||||
// console.warn('final options:', options);
|
||||
result = wcc(options)
|
||||
// console.warn('wcc result', result)
|
||||
} catch(errmsg) {
|
||||
reject(new Error(errmsg))
|
||||
return
|
||||
}
|
||||
|
||||
console.log('wcc get compile', Date.now() - st)
|
||||
if (options.output) {
|
||||
const output = path.resolve(options.cwd, options.output)
|
||||
const dir = path.dirname(output)
|
||||
if (lazyload) {
|
||||
// lazyload 为 true时,wcc 返回值是个对象, 需要序列化一下
|
||||
result = JSON.stringify(result)
|
||||
}
|
||||
try {
|
||||
await fs.stat(dir)
|
||||
} catch (e) {
|
||||
await fs.mkdir(dir, {
|
||||
recursive: true,
|
||||
})
|
||||
}
|
||||
await fs.writeFile(output, result, 'utf8')
|
||||
}
|
||||
console.warn('wcc get output', Date.now() - st)
|
||||
resolve(result)
|
||||
})
|
||||
}
|
||||
|
||||
Object.defineProperty(exports, 'version', {
|
||||
get() {
|
||||
return wcc.version
|
||||
},
|
||||
})
|
||||
|
||||
module.exports = exports
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user