mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-07 00:02:14 +08:00
feat: replace compiler as submodule
This commit is contained in:
parent
9549385d20
commit
fbb16cd24b
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "compiler"]
|
||||||
|
path = compiler
|
||||||
|
url = https://github.com/msojocs/wx-compiler
|
1
compiler
Submodule
1
compiler
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit dbc6115f02446ea7ae4b9f62c89b1072b7acf433
|
@ -1,85 +0,0 @@
|
|||||||
const path = require('path')
|
|
||||||
const fs = require('fs')
|
|
||||||
const crypto = require('crypto')
|
|
||||||
const os = require('os')
|
|
||||||
const child_process = require('child_process')
|
|
||||||
let platform = process.argv[2]
|
|
||||||
|
|
||||||
let exeList = []
|
|
||||||
const macExeList = [
|
|
||||||
'wcc',
|
|
||||||
'wcsc',
|
|
||||||
'wcc.bin',
|
|
||||||
'wcsc.bin'
|
|
||||||
]
|
|
||||||
const winExeList = [
|
|
||||||
'wcc.exe',
|
|
||||||
'wcsc.exe'
|
|
||||||
]
|
|
||||||
if(platform === 'darwin') {
|
|
||||||
exeList = macExeList;
|
|
||||||
} else if(platform === 'win32') {
|
|
||||||
exeList= winExeList;
|
|
||||||
} else {
|
|
||||||
exeList = macExeList.concat(winExeList)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function generate(vendorPath) {
|
|
||||||
let dirList = fs.readdirSync(vendorPath)
|
|
||||||
|
|
||||||
let libs = {}
|
|
||||||
dirList.forEach((item) => {
|
|
||||||
if (item == 'dev' || item == 'quickstart' || item == 'beta') {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let itemPath = path.join(vendorPath, item)
|
|
||||||
let stat = fs.statSync(itemPath)
|
|
||||||
if (stat.isDirectory()) {
|
|
||||||
let fileList = fs.readdirSync(itemPath)
|
|
||||||
|
|
||||||
let md5Info = {}
|
|
||||||
fileList.forEach((file) => {
|
|
||||||
if (fs.statSync(path.join(itemPath, file)).isFile()) {
|
|
||||||
let fileData = fs.readFileSync(path.join(itemPath, file))
|
|
||||||
let md5sum = crypto.createHash('md5')
|
|
||||||
md5sum.update(fileData)
|
|
||||||
md5Info[file] = md5sum.digest('hex')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
libs[item] = md5Info
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
let oldConfig = JSON.parse(fs.readFileSync(path.join(vendorPath, 'config.json'), 'utf8'))
|
|
||||||
for (var key in oldConfig.libs) {
|
|
||||||
// libs[key] = Object.assign({}, oldConfig.libs[key], libs[key])
|
|
||||||
oldConfig.libs[key] = Object.assign({}, oldConfig.libs[key], libs[key])
|
|
||||||
}
|
|
||||||
|
|
||||||
// let newLib = {}
|
|
||||||
// let keys = Object.keys(libs)
|
|
||||||
// keys.sort()
|
|
||||||
// for (var i = 0; i < keys.length; i++) {
|
|
||||||
// let key = keys[i]
|
|
||||||
// newLib[key] = libs[key]
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 更新
|
|
||||||
oldConfig.configVersion = Date.now()
|
|
||||||
|
|
||||||
for (let key in exeList) {
|
|
||||||
let file = exeList[key]
|
|
||||||
let fileData = fs.readFileSync(path.join(vendorPath, file))
|
|
||||||
let md5sum = crypto.createHash('md5')
|
|
||||||
md5sum.update(fileData)
|
|
||||||
oldConfig[file] = md5sum.digest('hex')
|
|
||||||
}
|
|
||||||
|
|
||||||
fs.writeFileSync(path.join(vendorPath, 'config.json'), JSON.stringify(oldConfig, null, '\t'))
|
|
||||||
}
|
|
||||||
|
|
||||||
generate(__dirname)
|
|
File diff suppressed because one or more lines are too long
@ -1,81 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
// wcsc.exe md5 = "d45f45f109afa238cd83c8ad1d0e2a5e"
|
|
||||||
const version = "20220423";
|
|
||||||
const { spawn } = require("child_process");
|
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
const args = process.argv.slice(2);
|
|
||||||
const wcscPath = path.resolve(__dirname, "./wcsc.bin");
|
|
||||||
const DEBUG_OUTPUT = process.env["WX_DEBUG_COMPILER_OUTPUT"];
|
|
||||||
|
|
||||||
function encode1(s) {
|
|
||||||
return encodeURI(s).replace(
|
|
||||||
/%(u[0-9A-F]{4})|(%[0-9A-F]{2})/gm,
|
|
||||||
function ($0, $1, $2) {
|
|
||||||
return ($1 && "\\" + $1.toLowerCase()) || decodeURI($2);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (args.includes("-ll")) {
|
|
||||||
const wcsc = spawn(wcscPath, args, {
|
|
||||||
cwd: process.cwd(),
|
|
||||||
});
|
|
||||||
const spwanData = [],
|
|
||||||
errData = [];
|
|
||||||
wcsc.stdout.on("data", (e) => {
|
|
||||||
spwanData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.stderr.on("data", (e) => {
|
|
||||||
errData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.on("close", (n) => {
|
|
||||||
if (0 === n) {
|
|
||||||
let str = Buffer.concat(spwanData).toString();
|
|
||||||
DEBUG_OUTPUT &&
|
|
||||||
fs.writeFileSync(`${DEBUG_OUTPUT}/linux_output.js`, str);
|
|
||||||
const resultSplit = str.split("=");
|
|
||||||
const tempObj = {};
|
|
||||||
for (
|
|
||||||
let i = 0, total = resultSplit.length;
|
|
||||||
i < total && resultSplit[i + 1];
|
|
||||||
i += 2
|
|
||||||
) {
|
|
||||||
// a=b ---> a: b
|
|
||||||
const key = resultSplit[i];
|
|
||||||
if (key === "version") continue;
|
|
||||||
tempObj[key] = resultSplit[i + 1].replace(
|
|
||||||
/[^\\]((\\x[\da-f]{2}|\\u[\da-f]{4})){1,}/g,
|
|
||||||
function ($0, $1, $2) {
|
|
||||||
return eval('"' + $0 + '"');
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const resultObj = {
|
|
||||||
common: tempObj.comm,
|
|
||||||
pageWxss: {},
|
|
||||||
};
|
|
||||||
for (const key in tempObj) {
|
|
||||||
if (key.endsWith(".wxss")) {
|
|
||||||
resultObj.pageWxss[key] = tempObj[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let result = JSON.stringify(resultObj);
|
|
||||||
result = result.replace(/\\\\/g, "\\");
|
|
||||||
process.stdout.write(result);
|
|
||||||
} else {
|
|
||||||
const err = Buffer.concat(errData).toString();
|
|
||||||
DEBUG_OUTPUT &&
|
|
||||||
fs.writeFileSync(`${DEBUG_OUTPUT}/linux_err.js`, err);
|
|
||||||
process.stderr.write(err);
|
|
||||||
process.exitCode = n;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const wcsc = spawn(wcscPath, args, {
|
|
||||||
cwd: process.cwd(),
|
|
||||||
stdio: "inherit",
|
|
||||||
});
|
|
||||||
wcsc.on("close", (code) => {
|
|
||||||
process.exitCode = code;
|
|
||||||
});
|
|
||||||
}
|
|
4
compiler/test/.gitignore
vendored
4
compiler/test/.gitignore
vendored
@ -1,4 +0,0 @@
|
|||||||
linux_output.js
|
|
||||||
node_output.json
|
|
||||||
node_stderr.json
|
|
||||||
wine_output.json
|
|
2
compiler/test/node-modules/.gitignore
vendored
2
compiler/test/node-modules/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
data
|
|
||||||
*.txt
|
|
18
compiler/test/node-modules/.vscode/launch.json
vendored
18
compiler/test/node-modules/.vscode/launch.json
vendored
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
// 使用 IntelliSense 了解相关属性。
|
|
||||||
// 悬停以查看现有属性的描述。
|
|
||||||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"type": "nwjs",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Launch NWjs",
|
|
||||||
"nwjsVersion": "any",
|
|
||||||
"webRoot": "${workspaceFolder}",
|
|
||||||
"reloadAfterAttached": true,
|
|
||||||
"userDataDir": "${workspaceFolder}/data",
|
|
||||||
"runtimeExecutable": "/mnt/disk2/wechat-web-devtools-linux/cache/wechat_devtools_1.05.2204180_x64/wechatdevtools.exe"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
# NODE模块的编译器测试目录
|
|
||||||
|
|
||||||
## 代码存放位置
|
|
||||||
|
|
||||||
wine版存放于 `node_modules/wcc_wine`
|
|
||||||
linux版存放于 `node_modules/wcc_linux`
|
|
||||||
|
|
||||||
|
|
||||||
## 生成代码
|
|
||||||
wine版按 `./vscode/launch.json` 配置执行nwjs生成 `wine.txt` 结尾的文件
|
|
||||||
linux版执行 `wcc_test.js` `wcsc_test.js` 生成 `linux.txt` 结尾的文件
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
<script>
|
|
||||||
require('./wcc_test')
|
|
||||||
require('./wcsc_test')
|
|
||||||
</script>
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
require('./wcc_test')
|
|
||||||
require('./wcsc_test')
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"forceVendor": true,
|
|
||||||
"name": "nw_test",
|
|
||||||
"main": "index.html",
|
|
||||||
"productName": "test",
|
|
||||||
"appname": "nw_test",
|
|
||||||
"version": "1.0",
|
|
||||||
"window": {
|
|
||||||
"frame": true
|
|
||||||
},
|
|
||||||
"chromium-args": "--no-sandbox --ignore-gpu-blacklist --register-pepper-plugins=./node_modules/mpv.js/build/Release/mpvjs.node;application/x-mpvjs",
|
|
||||||
"dependencies": {
|
|
||||||
"mpv.js": "^0.3.0",
|
|
||||||
"spdlog": "^0.13.6"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,180 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const MODE = typeof nw === 'object' ? 'wine' : 'linux'
|
|
||||||
const wcc_options = []
|
|
||||||
const wcc_options1 = {
|
|
||||||
"files": ["./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"isCut": true,
|
|
||||||
"wxmlCompileConfig": "9>_<1027./miniprogram_npm/miniprogram-barrage/index.wxml>_<10270>_<1027./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<10270>_<1027./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<10270>_<1027./miniprogram_npm/wxml-to-canvas/index.wxml>_<10270>_<1027./page/API/index.wxml>_<10271>_<1027set-tab-bar>_<1027./page/API/components/set-tab-bar/set-tab-bar.wxml>_<10270>_<1027./page/cloud/index.wxml>_<10270>_<1027./page/component/index.wxml>_<10270>_<1027./page/extend/index.wxml>_<10270",
|
|
||||||
"wxmlCompileConfigSplit": ">_<1027",
|
|
||||||
"replaceContent": {
|
|
||||||
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options1, 1])
|
|
||||||
const wcc_options2 = {
|
|
||||||
"files": ["./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", "./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$7061636b616765436f6d706f6e656e742f",
|
|
||||||
"wxmlCompileConfig": "34>_<3253./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<32530>_<3253./packageComponent/pages/canvas/webgl/webgl.wxml>_<32530>_<3253./packageComponent/pages/content/icon/icon.wxml>_<32530>_<3253./packageComponent/pages/content/progress/progress.wxml>_<32530>_<3253./packageComponent/pages/content/rich-text/rich-text.wxml>_<32530>_<3253./packageComponent/pages/content/text/text.wxml>_<32530>_<3253./packageComponent/pages/form/button/button.wxml>_<32530>_<3253./packageComponent/pages/form/checkbox/checkbox.wxml>_<32530>_<3253./packageComponent/pages/form/editor/editor.wxml>_<32530>_<3253./packageComponent/pages/form/form/form.wxml>_<32530>_<3253./packageComponent/pages/form/input/input.wxml>_<32530>_<3253./packageComponent/pages/form/label/label.wxml>_<32530>_<3253./packageComponent/pages/form/picker/picker.wxml>_<32530>_<3253./packageComponent/pages/form/picker-view/picker-view.wxml>_<32530>_<3253./packageComponent/pages/form/radio/radio.wxml>_<32530>_<3253./packageComponent/pages/form/slider/slider.wxml>_<32530>_<3253./packageComponent/pages/form/switch/switch.wxml>_<32530>_<3253./packageComponent/pages/form/textarea/textarea.wxml>_<32530>_<3253./packageComponent/pages/map/map/map.wxml>_<32530>_<3253./packageComponent/pages/media/camera/camera.wxml>_<32530>_<3253./packageComponent/pages/media/image/image.wxml>_<32530>_<3253./packageComponent/pages/media/live-player/live-player.wxml>_<32530>_<3253./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<32530>_<3253./packageComponent/pages/media/video/video.wxml>_<32530>_<3253./packageComponent/pages/nav/navigator/navigator.wxml>_<32530>_<3253./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<32530>_<3253./packageComponent/pages/open/ad/ad.wxml>_<32530>_<3253./packageComponent/pages/open/open-data/open-data.wxml>_<32530>_<3253./packageComponent/pages/open/web-view/web-view.wxml>_<32530>_<3253./packageComponent/pages/view/cover-view/cover-view.wxml>_<32530>_<3253./packageComponent/pages/view/movable-view/movable-view.wxml>_<32530>_<3253./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<32530>_<3253./packageComponent/pages/view/swiper/swiper.wxml>_<32530>_<3253./packageComponent/pages/view/view/view.wxml>_<32530",
|
|
||||||
"wxmlCompileConfigSplit": ">_<3253",
|
|
||||||
"replaceContent": {
|
|
||||||
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options2, 2])
|
|
||||||
const wcc_options3 = {
|
|
||||||
"files": ["./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"isCut": true,
|
|
||||||
"wxmlCompileConfig": "9>_<3589./miniprogram_npm/miniprogram-barrage/index.wxml>_<35890>_<3589./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<35890>_<3589./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<35890>_<3589./miniprogram_npm/wxml-to-canvas/index.wxml>_<35890>_<3589./page/API/index.wxml>_<35891>_<3589set-tab-bar>_<3589./page/API/components/set-tab-bar/set-tab-bar.wxml>_<35890>_<3589./page/cloud/index.wxml>_<35890>_<3589./page/component/index.wxml>_<35890>_<3589./page/extend/index.wxml>_<35890",
|
|
||||||
"wxmlCompileConfigSplit": ">_<3589",
|
|
||||||
"replaceContent": {
|
|
||||||
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options3, 3])
|
|
||||||
const wcc_options4 = {
|
|
||||||
"files": ["./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"wxmlCompileConfig": "9>_<5170./miniprogram_npm/miniprogram-barrage/index.wxml>_<51700>_<5170./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<51700>_<5170./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<51700>_<5170./miniprogram_npm/wxml-to-canvas/index.wxml>_<51700>_<5170./page/API/index.wxml>_<51701>_<5170set-tab-bar>_<5170./page/API/components/set-tab-bar/set-tab-bar.wxml>_<51700>_<5170./page/cloud/index.wxml>_<51700>_<5170./page/component/index.wxml>_<51700>_<5170./page/extend/index.wxml>_<51700",
|
|
||||||
"wxmlCompileConfigSplit": ">_<5170",
|
|
||||||
"replaceContent": {
|
|
||||||
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options4, 4])
|
|
||||||
const wcc_options5 = {
|
|
||||||
"files": ["./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", "./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$7061636b616765436f6d706f6e656e742f",
|
|
||||||
"isCut": true,
|
|
||||||
"wxmlCompileConfig": "34>_<6946./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<69460>_<6946./packageComponent/pages/canvas/webgl/webgl.wxml>_<69460>_<6946./packageComponent/pages/content/icon/icon.wxml>_<69460>_<6946./packageComponent/pages/content/progress/progress.wxml>_<69460>_<6946./packageComponent/pages/content/rich-text/rich-text.wxml>_<69460>_<6946./packageComponent/pages/content/text/text.wxml>_<69460>_<6946./packageComponent/pages/form/button/button.wxml>_<69460>_<6946./packageComponent/pages/form/checkbox/checkbox.wxml>_<69460>_<6946./packageComponent/pages/form/editor/editor.wxml>_<69460>_<6946./packageComponent/pages/form/form/form.wxml>_<69460>_<6946./packageComponent/pages/form/input/input.wxml>_<69460>_<6946./packageComponent/pages/form/label/label.wxml>_<69460>_<6946./packageComponent/pages/form/picker/picker.wxml>_<69460>_<6946./packageComponent/pages/form/picker-view/picker-view.wxml>_<69460>_<6946./packageComponent/pages/form/radio/radio.wxml>_<69460>_<6946./packageComponent/pages/form/slider/slider.wxml>_<69460>_<6946./packageComponent/pages/form/switch/switch.wxml>_<69460>_<6946./packageComponent/pages/form/textarea/textarea.wxml>_<69460>_<6946./packageComponent/pages/map/map/map.wxml>_<69460>_<6946./packageComponent/pages/media/camera/camera.wxml>_<69460>_<6946./packageComponent/pages/media/image/image.wxml>_<69460>_<6946./packageComponent/pages/media/live-player/live-player.wxml>_<69460>_<6946./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<69460>_<6946./packageComponent/pages/media/video/video.wxml>_<69460>_<6946./packageComponent/pages/nav/navigator/navigator.wxml>_<69460>_<6946./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<69460>_<6946./packageComponent/pages/open/ad/ad.wxml>_<69460>_<6946./packageComponent/pages/open/open-data/open-data.wxml>_<69460>_<6946./packageComponent/pages/open/web-view/web-view.wxml>_<69460>_<6946./packageComponent/pages/view/cover-view/cover-view.wxml>_<69460>_<6946./packageComponent/pages/view/movable-view/movable-view.wxml>_<69460>_<6946./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<69460>_<6946./packageComponent/pages/view/swiper/swiper.wxml>_<69460>_<6946./packageComponent/pages/view/view/view.wxml>_<69460",
|
|
||||||
"wxmlCompileConfigSplit": ">_<6946",
|
|
||||||
"replaceContent": {
|
|
||||||
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options5, 5])
|
|
||||||
const wcc_options6 = {
|
|
||||||
"files": ["./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"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"wxmlCompileConfig": "9>_<4575./miniprogram_npm/miniprogram-barrage/index.wxml>_<45750>_<4575./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<45750>_<4575./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<45750>_<4575./miniprogram_npm/wxml-to-canvas/index.wxml>_<45750>_<4575./page/API/index.wxml>_<45751>_<4575set-tab-bar>_<4575./page/API/components/set-tab-bar/set-tab-bar.wxml>_<45750>_<4575./page/cloud/index.wxml>_<45750>_<4575./page/component/index.wxml>_<45750>_<4575./page/extend/index.wxml>_<45750",
|
|
||||||
"wxmlCompileConfigSplit": ">_<4575",
|
|
||||||
"replaceContent": {
|
|
||||||
"./page/component/index.wxml": "<view class=\"page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"0\">\n <view class=\"index\" data-ib-structured-id=\"1\">\n <view class=\"index-hd\" data-ib-structured-id=\"2\">\n <image class=\"index-logo\" src=\"resources/kind/logo.png\" data-ib-structured-id=\"3\"></image>\n <view class=\"index-desc\" data-ib-structured-id=\"4\">以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见 <navigator url=\"pages/doc-web-view/doc-web-view\" class=\"weui-agree__link\" data-ib-structured-id=\"5\">小程序开发文档</navigator>。</view>\n </view>\n <view class=\"index-bd\" data-ib-structured-id=\"6\">\n <view class=\"kind-list\" data-ib-structured-id=\"7\">\n <block wx:for-items=\"{{list}}\" wx:key=\"{{item.id}}\" data-ib-structured-id=\"8\">\n <view class=\"kind-list-item\" data-ib-structured-id=\"9\">\n <view id=\"{{item.id}}\" class=\"kind-list-item-hd {{item.open ? 'kind-list-item-hd-show' : ''}}\" bindtap=\"kindToggle\" data-ib-structured-id=\"10\">\n <view class=\"kind-list-text\" data-ib-structured-id=\"11\">{{item.name}}</view>\n <image wx:if=\"{{theme === 'dark'}}\" class=\"kind-list-img\" src=\"resources/kind/{{item.id}}_dark.png\" data-ib-structured-id=\"12\"></image>\n <image wx:else class=\"kind-list-img\" src=\"resources/kind/{{item.id}}.png\" data-ib-structured-id=\"13\"></image>\n </view>\n\n <view class=\"kind-list-item-bd {{item.open ? 'kind-list-item-bd-show' : ''}}\" data-ib-structured-id=\"14\">\n <view class=\"navigator-box {{item.open ? 'navigator-box-show' : ''}}\" data-ib-structured-id=\"15\">\n <block wx:for-items=\"{{item.pages}}\" wx:for-item=\"page\" wx:key=\"*item\" data-ib-structured-id=\"16\">\n <navigator wx:if=\"{{page.appid}}\" target=\"miniProgram\" open-type=\"navigate\" app-id=\"{{page.appid}}\" path=\"\" extra-data=\"\" version=\"release\" class=\"navigator\" data-ib-structured-id=\"17\">\n <view class=\"navigator-text\" data-ib-structured-id=\"18\">{{page.name}}</view>\n <view class=\"navigator-arrow\" data-ib-structured-id=\"19\"></view>\n </navigator>\n <navigator wx:else url=\"/packageComponent/pages/{{item.id}}/{{page}}/{{page}}\" class=\"navigator\" data-ib-structured-id=\"20\">\n <view class=\"navigator-text\" data-ib-structured-id=\"21\">{{page}}</view>\n <view class=\"navigator-text\" data-ib-structured-id=\"22\">{{page}}</view>\n adsfdrvnujre\n </navigator>\n </block>\n </view>\n </view>\n </view>\n </block>\n </view>\n </view>\n </view>\n</view>"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
"lazyloadConfig": "./miniprogram_npm/miniprogram-barrage/index>_<4575./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<4575./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<4575./miniprogram_npm/wxml-to-canvas/index>_<4575./page/API/index>_<4575./page/API/components/set-tab-bar/set-tab-bar>_<4575./page/cloud/index>_<4575./page/component/index>_<4575./page/extend/index"
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options6, 6])
|
|
||||||
|
|
||||||
const wcc_options7 = {
|
|
||||||
"files": ["./pages/index/index.wxml", "./pages/logs/logs.wxml"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"wxmlCompileConfig": "2>_<4665./pages/index/index.wxml>_<46650>_<4665./pages/logs/logs.wxml>_<46650",
|
|
||||||
"wxmlCompileConfigSplit": ">_<4665",
|
|
||||||
"replaceContent": {
|
|
||||||
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <template name=\"odd\" data-ib-structured-id=\"1\">\n <view data-ib-structured-id=\"2\"> odd </view>\n </template>\n <template name=\"even\" data-ib-structured-id=\"3\">\n <view data-ib-structured-id=\"4\"> even </view>\n </template>\n\n <block wx:for=\"{{[1, 2, 3, 4, 5]}}\" data-ib-structured-id=\"5\">\n <template data-ib-structured-id=\"6\" is=\"{{item % 2 == 0 ? 'even' : 'odd'}}\" />\n </block>\n<!--\n index: int\n msg: string\n time: string\n-->\n<template name=\"msgItem\" data-ib-structured-id=\"7\">\n <view data-ib-structured-id=\"8\">\n <text data-ib-structured-id=\"9\"> {{index}}: {{msg}} </text>\n <text data-ib-structured-id=\"10\"> Time: {{time}} </text>\n </view>\n</template>\n<template data-ib-structured-id=\"11\" is=\"msgItem\" data=\"{{...item}}\"/>\n\n <view class=\"userinfo\" data-ib-structured-id=\"12\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"13\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"14\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"15\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"16\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"17\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"18\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"19\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"20\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"21\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"22\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"23\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" style=\"width: 197rpx; height: 94rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"24\">\n <text class=\"user-motto\" data-ib-structured-id=\"25\">{{motto}}</text>\n </view>\n</view>"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
"lazyloadConfig": "./pages/index/index>_<4665./pages/logs/logs"
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options7, 7])
|
|
||||||
const wcc_options8 = {
|
|
||||||
"pageCount": 2,
|
|
||||||
"files": ["./pages/index/index.wxss", "./pages/logs/logs.wxss", "./app.wxss"],
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
"lazyload": true,
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
// wcc_options.push([wcc_options8, 8])
|
|
||||||
const wcc_options9 = {
|
|
||||||
"pageCount": 2,
|
|
||||||
"files": ["./pages/index/index.wxss", "./pages/logs/logs.wxss", "./app.wxss"],
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/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
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options9, 9])
|
|
||||||
const wcc_options10 = {
|
|
||||||
"files": ["./pages/index/index.wxml", "./pages/logs/logs.wxml"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"isCut": true,
|
|
||||||
"wxmlCompileConfig": "2>_<8436./pages/index/index.wxml>_<84360>_<8436./pages/logs/logs.wxml>_<84360",
|
|
||||||
"wxmlCompileConfigSplit": ">_<8436",
|
|
||||||
"replaceContent": {
|
|
||||||
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <template name=\"odd\" data-ib-structured-id=\"1\">\n <view data-ib-structured-id=\"2\"> odd </view>\n </template>\n <template name=\"even\" data-ib-structured-id=\"3\">\n <view data-ib-structured-id=\"4\"> even </view>\n </template>\n\n <block wx:for=\"{{[1, 2, 3, 4, 5]}}\" data-ib-structured-id=\"5\">\n <template data-ib-structured-id=\"6\" is=\"{{item % 2 == 0 ? 'even' : 'odd'}}\" />\n </block>\n<!--\n index: int\n msg: string\n time: string\n-->\n<template name=\"msgItem\" data-ib-structured-id=\"7\">\n <view data-ib-structured-id=\"8\">\n <text data-ib-structured-id=\"9\"> {{index}}: {{msg}} </text>\n <text data-ib-structured-id=\"10\"> Time: {{time}} </text>\n </view>\n</template>\n<template data-ib-structured-id=\"11\" is=\"msgItem\" data=\"{{...item}}\"/>\n\n <view class=\"userinfo\" data-ib-structured-id=\"12\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"13\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"14\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"15\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"16\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"17\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"18\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"19\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"20\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"21\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"22\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"23\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" style=\"width: 197rpx; height: 94rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"24\">\n <text class=\"user-motto\" data-ib-structured-id=\"25\">{{motto}}</text>\n </view>\n</view>"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
"lazyloadConfig": ""
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options10, 10])
|
|
||||||
const wcc_options11 = {
|
|
||||||
"files": ["./pages/index/index.wxml", "./pages/logs/logs.wxml"],
|
|
||||||
"debugWXS": false,
|
|
||||||
"debug": true,
|
|
||||||
"genfuncname": "$gwx",
|
|
||||||
"isCut": true,
|
|
||||||
"wxmlCompileConfig": "2>_<6482./pages/index/index.wxml>_<64820>_<6482./pages/logs/logs.wxml>_<64820",
|
|
||||||
"wxmlCompileConfigSplit": ">_<6482",
|
|
||||||
"replaceContent": {
|
|
||||||
"./pages/index/index.wxml": "<!--index.wxml-->\n<view class=\"container\" data-ib-structured-id=\"0\">\n <template name=\"odd\" data-ib-structured-id=\"1\">\n <view data-ib-structured-id=\"2\"> odd </view>\n </template>\n <template name=\"even\" data-ib-structured-id=\"3\">\n <view data-ib-structured-id=\"4\"> even </view>\n </template>\n\n <block wx:for=\"{{[1, 2, 3, 4, 5]}}\" data-ib-structured-id=\"5\">\n <template data-ib-structured-id=\"6\" is=\"{{item % 2 == 0 ? 'even' : 'odd'}}\" />\n </block>\n<!--\n index: int\n msg: string\n time: string\n-->\n<template name=\"msgItem\" data-ib-structured-id=\"7\">\n <view data-ib-structured-id=\"8\">\n <text data-ib-structured-id=\"9\"> {{index}}: {{msg}} </text>\n <text data-ib-structured-id=\"10\"> Time: {{time}} </text>\n </view>\n</template>\n<template data-ib-structured-id=\"11\" is=\"msgItem\" data=\"{{...item}}\"/>\n\n <view class=\"userinfo\" data-ib-structured-id=\"12\">\n <block wx:if=\"{{canIUseOpenData}}\" data-ib-structured-id=\"13\">\n <view class=\"userinfo-avatar\" bindtap=\"bindViewTap\" style=\"width: 183rpx; height: 148rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"14\">\n <open-data type=\"userAvatarUrl\" data-ib-structured-id=\"15\"></open-data>\n </view>\n <open-data type=\"userNickName\" data-ib-structured-id=\"16\"></open-data>\n </block>\n <block wx:elif=\"{{!hasUserInfo}}\" data-ib-structured-id=\"17\">\n <button wx:if=\"{{canIUseGetUserProfile}}\" bindtap=\"getUserProfile\" data-ib-structured-id=\"18\"> 获取头像昵称 </button>\n <button wx:elif=\"{{canIUse}}\" open-type=\"getUserInfo\" bindgetuserinfo=\"getUserInfo\" data-ib-structured-id=\"19\"> 获取头像昵称 </button>\n <view wx:else data-ib-structured-id=\"20\"> 请使用1.4.4及以上版本基础库 </view>\n </block>\n <block wx:else data-ib-structured-id=\"21\">\n <image bindtap=\"bindViewTap\" class=\"userinfo-avatar\" src=\"{{userInfo.avatarUrl}}\" mode=\"cover\" data-ib-structured-id=\"22\"></image>\n <text class=\"userinfo-nickname\" data-ib-structured-id=\"23\">{{userInfo.nickName}}</text>\n </block>\n </view>\n <view class=\"usermotto\" style=\"width: 197rpx; height: 94rpx; display: block; box-sizing: border-box\" data-ib-structured-id=\"24\">\n <text class=\"user-motto\" data-ib-structured-id=\"25\">{{motto}}</text>\n </view>\n</view>"
|
|
||||||
},
|
|
||||||
"cwd": "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
"lazyloadConfig": "./pages/index/index>_<6482./pages/logs/logs"
|
|
||||||
}
|
|
||||||
wcc_options.push([wcc_options11, 11])
|
|
||||||
|
|
||||||
const test = async (options, id) => {
|
|
||||||
console.log("============")
|
|
||||||
try {
|
|
||||||
fs.mkdirSync(path.resolve(__dirname, `${id}`))
|
|
||||||
} catch (err) {
|
|
||||||
}
|
|
||||||
process.env.WX_DEBUG_COMPILER_OUTPUT = path.resolve(__dirname, `${id}`)
|
|
||||||
console.log(process.env.WX_DEBUG_COMPILER_OUTPUT)
|
|
||||||
const wcc = require("wcc_" + MODE).wcc;
|
|
||||||
const wcc_result = await wcc(options);
|
|
||||||
let result = wcc_result
|
|
||||||
if (!!options.lazyloadConfig)
|
|
||||||
result = JSON.stringify(wcc_result, null, 4)
|
|
||||||
fs.writeFileSync(path.resolve(__dirname, `${id}/wcc_node_${MODE}.txt`), result)
|
|
||||||
};
|
|
||||||
(async () => {
|
|
||||||
for(let options of wcc_options){
|
|
||||||
await test(options[0], options[1]);
|
|
||||||
}
|
|
||||||
})()
|
|
@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const MODE = typeof nw === 'object' ? 'wine': 'linux'
|
|
||||||
|
|
||||||
const wcsc_options1 = {"pageCount":34,"files":["./packageComponent/pages/view/view/view.wxss","./packageComponent/pages/view/scroll-view/scroll-view.wxss","./packageComponent/pages/view/swiper/swiper.wxss","./packageComponent/pages/view/movable-view/movable-view.wxss","./packageComponent/pages/view/cover-view/cover-view.wxss","./packageComponent/pages/content/text/text.wxss","./packageComponent/pages/content/icon/icon.wxss","./packageComponent/pages/content/progress/progress.wxss","./packageComponent/pages/content/rich-text/rich-text.wxss","./packageComponent/pages/form/button/button.wxss","./packageComponent/pages/form/checkbox/checkbox.wxss","./packageComponent/pages/form/form/form.wxss","./packageComponent/pages/form/input/input.wxss","./packageComponent/pages/form/label/label.wxss","./packageComponent/pages/form/picker/picker.wxss","./packageComponent/pages/form/picker-view/picker-view.wxss","./packageComponent/pages/form/radio/radio.wxss","./packageComponent/pages/form/slider/slider.wxss","./packageComponent/pages/form/switch/switch.wxss","./packageComponent/pages/form/textarea/textarea.wxss","./packageComponent/pages/form/editor/editor.wxss","./packageComponent/pages/nav/navigator/navigator.wxss","./packageComponent/pages/media/image/image.wxss","./packageComponent/pages/media/video/video.wxss","./packageComponent/pages/media/camera/camera.wxss","./packageComponent/pages/media/live-pusher/live-pusher.wxss","./packageComponent/pages/media/live-player/live-player.wxss","./packageComponent/pages/map/map/map.wxss","./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxss","./packageComponent/pages/canvas/webgl/webgl.wxss","./packageComponent/pages/open/ad/ad.wxss","./packageComponent/pages/open/open-data/open-data.wxss","./packageComponent/pages/open/web-view/web-view.wxss","./packageComponent/pages/obstacle-free/aria-component/aria-component.wxss","./app.wxss","./common/lib/weui.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","./page/API/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./page/cloud/index.wxss","./page/common/common.wxss","./page/common/index.wxss","./page/common/lib/weui.wxss","./page/component/index.wxss","./page/extend/index.wxss","./packageComponent/pages/form/editor/assets/iconfont.wxss"],"cwd":"/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/","subPackage":"packageComponent/","replaceContent":{"./packageComponent/pages/camera-scan-code/camera-scan-code.wxss":"\n\ncamera {\n height: 250px;\n}\n\n.btn-area {\n margin-top: 0;\n}\n\nform {\n margin-top: 15px;\n}\n\n.weui-cell__bd {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px 0;\n min-height: 30px;\n}"},"debug":true}
|
|
||||||
const wcsc_options2 = {"pageCount":9,"files":["./page/component/index.wxss","./page/API/index.wxss","./page/cloud/index.wxss","./page/extend/index.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./app.wxss","./common/lib/weui.wxss","./page/common/common.wxss","./page/common/index.wxss","./page/common/lib/weui.wxss"],"cwd":"/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/","replaceContent":{"./packageComponent/pages/camera-scan-code/camera-scan-code.wxss":"\n\ncamera {\n height: 250px;\n}\n\n.btn-area {\n margin-top: 0;\n}\n\nform {\n margin-top: 15px;\n}\n\n.weui-cell__bd {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px 0;\n min-height: 30px;\n}"},"debug":true}
|
|
||||||
|
|
||||||
const test = async (options, id) => {
|
|
||||||
console.log("============", id)
|
|
||||||
try{
|
|
||||||
fs.mkdirSync(path.resolve(__dirname, `${id}`))
|
|
||||||
}catch(ignore){}
|
|
||||||
const wcsc = require("wcc_" + MODE).wcsc;
|
|
||||||
const wcsc_result = await wcsc(options);
|
|
||||||
fs.writeFileSync(path.resolve(__dirname, `${id}/wcsc_node_${MODE}.txt`), JSON.stringify(wcsc_result, null, 4))
|
|
||||||
};
|
|
||||||
test(wcsc_options1, 1);
|
|
||||||
test(wcsc_options2, 2);
|
|
@ -1,217 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const { spawn, spawnSync } = require("child_process");
|
|
||||||
const path = require("path");
|
|
||||||
const fs = require("fs");
|
|
||||||
const { exit } = require("process");
|
|
||||||
|
|
||||||
const samples = []
|
|
||||||
const config3 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args: [
|
|
||||||
"-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",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
samples.push([config3, 3])
|
|
||||||
const config4 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args: [
|
|
||||||
"-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",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
samples.push([config4, 4])
|
|
||||||
|
|
||||||
const config5 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
args: ["-d","--split",">_<2460","-xc","2>_<2460./pages/index/index.wxml>_<24600>_<2460./pages/logs/logs.wxml>_<24600","-lla","./pages/index/index>_<2460./pages/logs/logs","./pages/index/index.wxml","./pages/logs/logs.wxml","-gn","$gwx"]
|
|
||||||
}
|
|
||||||
samples.push([config5, 5])
|
|
||||||
|
|
||||||
const test_wine = (config, id) => {
|
|
||||||
const wine = spawn(
|
|
||||||
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.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, `./${id}/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 = (config, id) => {
|
|
||||||
try {
|
|
||||||
fs.mkdirSync(path.resolve(__dirname, id))
|
|
||||||
} catch (ignore) {
|
|
||||||
|
|
||||||
}
|
|
||||||
const node_exec = spawn(
|
|
||||||
path.resolve(__dirname, "../../../nodejs/wcc"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.projectPath,
|
|
||||||
env: {
|
|
||||||
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, id),
|
|
||||||
},
|
|
||||||
// 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, `./${id}/node_output.json`),
|
|
||||||
result
|
|
||||||
);
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(__dirname, `./${id}/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 (config) => {
|
|
||||||
try {
|
|
||||||
const node_result = await test_node(config[0], config[1] + '');
|
|
||||||
const wine_result = await test_wine(config[0], config[1] + '');
|
|
||||||
console.log("结果是否一致:", wine_result.trim() === node_result);
|
|
||||||
} catch (err) {
|
|
||||||
console.error("错误:", err);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
(async ()=>{
|
|
||||||
for(let sample of samples){
|
|
||||||
await test(sample)
|
|
||||||
}
|
|
||||||
})()
|
|
@ -1,59 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
var x = [
|
|
||||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
|
||||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
|
||||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
|
||||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
|
||||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
|
||||||
|
|
||||||
"../../../common/head.wxml",
|
|
||||||
"../../../common/foot.wxml",
|
|
||||||
"./page/API/index.wxml",
|
|
||||||
"./page/cloud/index.wxml",
|
|
||||||
"./page/common/foot.wxml",
|
|
||||||
|
|
||||||
"./page/common/head.wxml",
|
|
||||||
"./page/component/index.wxml",
|
|
||||||
"./page/extend/index.wxml",
|
|
||||||
];
|
|
||||||
const config = {
|
|
||||||
num: 4,
|
|
||||||
};
|
|
||||||
let content = "";
|
|
||||||
const funcName = "$gwx";
|
|
||||||
const source = fs
|
|
||||||
.readFileSync(path.resolve(__dirname, "./3/linux_output.js"))
|
|
||||||
.toString();
|
|
||||||
console.log(
|
|
||||||
path.join(
|
|
||||||
path.dirname("./page/API/components/set-tab-bar/set-tab-bar.wxml"),
|
|
||||||
"../../../common/head.wxml"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
// "./page/common/head.wxml"
|
|
||||||
process.exit(0);
|
|
||||||
// 引入解析
|
|
||||||
const deps = source.matchAll(/_ai\(.*?,x\[(\d+)\],.*?,x\[(\d+)\],\d+,\d+\)/g);
|
|
||||||
console.log(deps);
|
|
||||||
for (let dep of deps) {
|
|
||||||
console.log(dep[0]);
|
|
||||||
console.log(dep[1]);
|
|
||||||
console.log(dep[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// gz函数2
|
|
||||||
const exp = `function gz\\${funcName}_${
|
|
||||||
config.num + 1
|
|
||||||
}\\(\\)\\{[\\s\\S]*?__WXML_GLOBAL__\\.ops_cached\\.\\${funcName}_${
|
|
||||||
config.num + 1
|
|
||||||
}\n}`;
|
|
||||||
|
|
||||||
// console.log('exp --- ', exp)
|
|
||||||
const gz = source.match(new RegExp(exp));
|
|
||||||
// console.log(gz)
|
|
||||||
content += gz[0].replace(
|
|
||||||
new RegExp(`\\${funcName}\\_\\d+`, "g"),
|
|
||||||
`${config.funcName}_1`
|
|
||||||
);
|
|
@ -1,26 +0,0 @@
|
|||||||
# unicode
|
|
||||||
| 符号 | unicode |
|
|
||||||
|-----|---------|
|
|
||||||
| tab | \u0009 |
|
|
||||||
| t | \u0074 |
|
|
||||||
|
|
||||||
# 起始
|
|
||||||
var cs = cs || [];\u000a$gwx_XC_1=function(_,_v,_n,_p,_s,_wp,_wl,$gwn,$gwl,$gwh,wh,$gstack,$gwrt,gra,grb,TestTest,wfor,_ca,_da,_r,_rz,_o,_oz,_1,_1z,_2,_2z,_m,_mz,nv_getDate,nv_getRegExp,nv_console,nv_parseInt,nv_parseFloat,nv_isNaN,nv_isFinite,nv_decodeURI,nv_decodeURIComponent,nv_encodeURI,nv_encodeURIComponent,$gdc,nv_JSON,_af,_gv,_ai,_grp,_gd,_gapi,$ixc,_ic,_w,_ev,_tsd){return function(path,global){\u000aif(typeof global==='undefined'){if (typeof __GWX_GLOBAL__==='undefined')global={};else global=__GWX_GLOBAL__;}if(typeof __WXML_GLOBAL__ === 'undefined') {__WXML_GLOBAL__={};\u000a}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};\u000a
|
|
||||||
|
|
||||||
#
|
|
||||||
var e_={}\u000aif(typeof(global.entrys)==='undefined')global.entrys={};e_=global.entrys;\u000avar d_={}\u000aif(typeof(global.defines)==='undefined')global.defines={};d_=global.defines;\u000avar f_={}\u000aif(typeof(global.modules)==='undefined')global.modules={};f_=global.modules || {};\u000avar p_={}\u000avar cs = cs || [];\u000a__WXML_GLOBAL__.ops_cached = __WXML_GLOBAL__.ops_cached || {}\u000a__WXML_GLOBAL__.ops_set = __WXML_GLOBAL__.ops_set || {};\u000a__WXML_GLOBAL__.ops_init = __WXML_GLOBAL__.ops_init || {};\u000avar z=__WXML_GLOBAL__.ops_set.$gwx_XC_1 || [];\u000a
|
|
||||||
|
|
||||||
# 函数
|
|
||||||
function gz$gwx_XC_0_1(){\u000aif( __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1)return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1=[];\u000a(function(z){var a=11;function Z(ops){z.push(ops)}\u000aZ([3,'container'])\u000aZ([3,'userinfo'])\u000aZ([[7],[3,'canIUseOpenData']])\u000aZ([3,'bindViewTap'])\u000aZ([3,'userinfo-avatar'])\u000aZ([3,'width: 183rpx; height: 148rpx; display: block; box-sizing: border-box'])\u000aZ([3,'userAvatarUrl'])\u000aZ([3,'userNickName'])\u000aZ([[2,'!'],[[7],[3,'hasUserInfo']]])\u000aZ([[7],[3,'canIUseGetUserProfile']])\u000aZ([3,'getUserProfile'])\u000aZ([3,' 获取头像昵称 '])\u000aZ([[7],[3,'canIUse']])\u000aZ([3,'getUserInfo'])\u000aZ(z[13])\u000aZ(z[11])\u000aZ([3,' 请使用1.4.4及以上版本基础库 '])\u000aZ(z[3])\u000aZ(z[4])\u000aZ([3,'cover'])\u000aZ([[6],[[7],[3,'userInfo']],[3,'avatarUrl']])\u000aZ([3,'userinfo-nickname'])\u000aZ([a,[[6],[[7],[3,'userInfo']],[3,'nickName']]])\u000aZ([3,'usermotto'])\u000aZ([3,'user-motto'])\u000aZ([a,[[7],[3,'motto']]])\u000a})(__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1);return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a}
|
|
||||||
|
|
||||||
#
|
|
||||||
\u000a__WXML_GLOBAL__.ops_set.$gwx_XC_0=z;\u000a__WXML_GLOBAL__.ops_init.$gwx_XC_0=true;\u000avar x=['./pages/index/index.wxml'];d_[x[0]]={}\u000a
|
|
||||||
|
|
||||||
|
|
||||||
var m0=function(e,s,r,gg){\u000avar z=gz$gwx_XC_0_1()\u000acs.push(\u0022./pages/index/index.wxml:view:2:2\u0022)\u000avar oB=_n('view')\u000a_rz(z,oB,'class',0,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:view:3:4\u0022)\u000avar xC=_n('view')\u000a_rz(z,xC,'class',1,e,s,gg)\u000avar oD=_v()\u000a_(xC,oD)\u000aif(_oz(z,2,e,s,gg)){oD.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:block:4:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:5:8\u0022)\u000avar fE=_mz(z,'view',['bindtap',3,'class',1,'style',2],[],e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:open-data:6:10\u0022)\u000avar cF=_n('open-data')\u000a_rz(z,cF,'type',6,e,s,gg)\u000acs.pop()\u000a_(fE,cF)\u000acs.pop()\u000a_(oD,fE)\u000acs.push(\u0022./pages/index/index.wxml:open-data:8:8\u0022)\u000avar hG=_n('open-data')\u000a_rz(z,hG,'type',7,e,s,gg)\u000acs.pop()\u000a_(oD,hG)\u000acs.pop()\u000a}\u000aelse if(_oz(z,8,e,s,gg)){oD.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:block:10:6\u0022)\u000avar oH=_v()\u000a_(oD,oH)\u000aif(_oz(z,9,e,s,gg)){oH.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000avar cI=_n('button')\u000a_rz(z,cI,'bindtap',10,e,s,gg)\u000avar oJ=_oz(z,11,e,s,gg)\u000a_(cI,oJ)\u000acs.pop()\u000a_(oH,cI)\u000acs.pop()\u000a}\u000aelse if(_oz(z,12,e,s,gg)){oH.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000avar lK=_mz(z,'button',['bindgetuserinfo',13,'openType',1],[],e,s,gg)\u000avar aL=_oz(z,15,e,s,gg)\u000a_(lK,aL)\u000acs.pop()\u000a_(oH,lK)\u000acs.pop()\u000a}\u000aelse{oH.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000avar tM=_n('view')\u000avar eN=_oz(z,16,e,s,gg)\u000a_(tM,eN)\u000acs.pop()\u000a_(oH,tM)\u000acs.pop()\u000a}\u000aoH.wxXCkey=1\u000acs.pop()\u000a}\u000aelse{oD.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:block:15:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:image:16:8\u0022)\u000avar bO=_mz(z,'image',['bindtap',17,'class',1,'mode',2,'src',3],[],e,s,gg)\u000acs.pop()\u000a_(oD,bO)\u000acs.push(\u0022./pages/index/index.wxml:text:17:8\u0022)\u000avar oP=_n('text')\u000a_rz(z,oP,'class',21,e,s,gg)\u000avar xQ=_oz(z,22,e,s,gg)\u000a_(oP,xQ)\u000acs.pop()\u000a_(oD,oP)\u000acs.pop()\u000a}\u000aoD.wxXCkey=1\u000acs.pop()\u000a_(oB,xC)\u000acs.push(\u0022./pages/index/index.wxml:view:20:4\u0022)\u000avar oR=_n('view')\u000a_rz(z,oR,'class',23,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:text:21:6\u0022)\u000avar fS=_n('text')\u000a_rz(z,fS,'class',24,e,s,gg)\u000avar cT=_oz(z,25,e,s,gg)\u000a_(fS,cT)\u000acs.pop()\u000a_(oR,fS)\u000acs.pop()\u000a_(oB,oR)\u000acs.pop()\u000a_(r,oB)\u000areturn r\u000a}\u000ae_[x[0]]={f:m0,j:[],i:[],ti:[],ic:[]}\u000a
|
|
||||||
|
|
||||||
#
|
|
||||||
if(path&&e_[path]){\u000aouterGlobal.__wxml_comp_version__=0.02\u000areturn function(env,dd,global){$gwxc=0;var root={\u0022tag\u0022:\u0022wx-page\u0022};root.children=[]\u000a;g=\u0022$gwx_XC_0\u0022;var main=e_[path].f\u000acs=[]\u000aif (typeof global===\u0022undefined\u0022)global={};global.f=$gdc(f_[path],\u0022\u0022,1);\u000aif(typeof(outerGlobal.__webview_engine_version__)!='undefined'&&outerGlobal.__webview_engine_version__+1e-6>=0.02+1e-6&&outerGlobal.__mergeData__)\u000a{\u000aenv=outerGlobal.__mergeData__(env,dd);\u000a}\u000atry{\u000amain(env,{},root,global);\u000a_tsd(root)\u000aif(typeof(outerGlobal.__webview_engine_version__)=='undefined'|| outerGlobal.__webview_engine_version__+1e-6<0.01+1e-6){return _ev(root);}\u000a}catch(err){\u000aconsole.log(cs, env);\u000aconsole.log(err)\u000athrow err\u000a}\u000a;g=\u0022\u0022;\u000areturn root;\u000a}\u000a}\u000a}\u000a}
|
|
||||||
|
|
||||||
# end
|
|
||||||
(__g.a,__g.b,__g.c,__g.d,__g.e,__g.f,__g.g,__g.h,__g.i,__g.j,__g.k,__g.l,__g.m,__g.n,__g.o,__g.p,__g.q,__g.r,__g.s,__g.t,__g.u,__g.v,__g.w,__g.x,__g.y,__g.z,__g.A,__g.B,__g.C,__g.D,__g.E,__g.F,__g.G,__g.H,__g.I,__g.J,__g.K,__g.L,__g.M,__g.N,__g.O,__g.P,__g.Q,__g.R,__g.S,__g.T,__g.U,__g.V,__g.W,__g.X,__g.Y,__g.Z,__g.aa);if(__vd_version_info__.delayedGwx||false)$gwx_XC_0();
|
|
@ -1,204 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const { spawn, spawnSync } = require("child_process");
|
|
||||||
const path = require("path");
|
|
||||||
const fs = require("fs");
|
|
||||||
const { exit } = require("process");
|
|
||||||
|
|
||||||
const samples = []
|
|
||||||
const sample3 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args:[
|
|
||||||
"-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",
|
|
||||||
]};
|
|
||||||
samples.push([sample3, 3])
|
|
||||||
const sample4= {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args: [
|
|
||||||
"-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",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
samples.push([sample4, 4])
|
|
||||||
|
|
||||||
const sample5 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/we1",
|
|
||||||
args: ["-d","--split",">_<7271","-cc","2>_<7271./pages/index/index.wxml>_<72710>_<7271./pages/logs/logs.wxml>_<72710","-llw","./pages/index/index>_<7271./pages/logs/logs","./pages/index/index.wxml","./pages/logs/logs.wxml","-gn","$gwx"]
|
|
||||||
}
|
|
||||||
samples.push([sample5, 5])
|
|
||||||
|
|
||||||
const test_wine = (config, id) => {
|
|
||||||
const wine = spawn(
|
|
||||||
path.resolve(__dirname, "../../../../package.nw/js/vendor/wcc.exe"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.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, `./${id}/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 = (config, id) => {
|
|
||||||
const node_exec = spawn(
|
|
||||||
path.resolve(__dirname, "../../../nodejs/wcc"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.projectPath,
|
|
||||||
env: {
|
|
||||||
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, `./${id}`),
|
|
||||||
},
|
|
||||||
// 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);
|
|
||||||
process.stderr.write(Buffer.concat(errData).toString());
|
|
||||||
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, `./${id}/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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
(async ()=>{
|
|
||||||
for (const sample of samples) {
|
|
||||||
await test(sample[0], sample[1])
|
|
||||||
}
|
|
||||||
})()
|
|
@ -1,16 +0,0 @@
|
|||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
|
|
||||||
var x=['./miniprogram_npm/miniprogram-barrage/index.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml','./miniprogram_npm/wxml-to-canvas/index.wxml','./page/API/components/set-tab-bar/set-tab-bar.wxml','../../../common/head.wxml','../../../common/foot.wxml','./page/API/index.wxml','./page/cloud/index.wxml','./page/common/foot.wxml','./page/common/head.wxml','./page/component/index.wxml','./page/extend/index.wxml'];
|
|
||||||
const config = {
|
|
||||||
num: 4
|
|
||||||
}
|
|
||||||
const source = fs.readFileSync(path.resolve(__dirname, './3/linux_output.js')).toString()
|
|
||||||
const m0Exp = `var m${config.num}=function\\(e,s,r,gg\\){[\\s\\S]*{f:m${config.num},j:\\[.*?\\],i:\\[.*?\\],ti:\\[(.*?)\\],ic:\\[.*?\\]}`
|
|
||||||
console.log('exp --- ', m0Exp)
|
|
||||||
let m0 = source.match(new RegExp(m0Exp))
|
|
||||||
const compIndex = m0[1].match(/\d+/g)
|
|
||||||
console.log(compIndex)
|
|
||||||
for(let index of compIndex)
|
|
||||||
console.log(x[index])
|
|
||||||
m0 = m0[0].replace(new RegExp(`m${config.num}`, 'g'), 'm0').replace(new RegExp(`x\\[${config.num}\\]`, 'g'), 'x[0]')
|
|
@ -1,238 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const { spawn, spawnSync } = require("child_process");
|
|
||||||
const path = require("path");
|
|
||||||
const fs = require("fs");
|
|
||||||
const { exit } = require("process");
|
|
||||||
const util = require('util')
|
|
||||||
|
|
||||||
const samples = []
|
|
||||||
const sample3 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args: [
|
|
||||||
"-db",
|
|
||||||
"-pc",
|
|
||||||
"9",
|
|
||||||
"-ll",
|
|
||||||
"./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 sample4 = {
|
|
||||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
|
||||||
args: [
|
|
||||||
"-db",
|
|
||||||
"-pc",
|
|
||||||
"70",
|
|
||||||
"./packageAPI/pages/api/login/login.wxss",
|
|
||||||
"./packageAPI/pages/api/get-user-info/get-user-info.wxss",
|
|
||||||
"./packageAPI/pages/api/request-payment/request-payment.wxss",
|
|
||||||
"./packageAPI/pages/api/jump/jump.wxss",
|
|
||||||
"./packageAPI/pages/api/share/share.wxss",
|
|
||||||
"./packageAPI/pages/api/share-button/share-button.wxss",
|
|
||||||
"./packageAPI/pages/api/custom-message/custom-message.wxss",
|
|
||||||
"./packageAPI/pages/api/subscribe-message/subscribe-message.wxss",
|
|
||||||
"./packageAPI/pages/api/choose-address/choose-address.wxss",
|
|
||||||
"./packageAPI/pages/api/choose-invoice-title/choose-invoice-title.wxss",
|
|
||||||
"./packageAPI/pages/api/soter-authentication/soter-authentication.wxss",
|
|
||||||
"./packageAPI/pages/api/setting/setting.wxss",
|
|
||||||
"./packageAPI/pages/page/set-navigation-bar-title/set-navigation-bar-title.wxss",
|
|
||||||
"./packageAPI/pages/page/navigation-bar-loading/navigation-bar-loading.wxss",
|
|
||||||
"./packageAPI/pages/page/navigator/navigator.wxss",
|
|
||||||
"./packageAPI/pages/page/pull-down-refresh/pull-down-refresh.wxss",
|
|
||||||
"./packageAPI/pages/page/animation/animation.wxss",
|
|
||||||
"./packageAPI/pages/page/action-sheet/action-sheet.wxss",
|
|
||||||
"./packageAPI/pages/page/modal/modal.wxss",
|
|
||||||
"./packageAPI/pages/page/toast/toast.wxss",
|
|
||||||
"./packageAPI/pages/page/canvas/canvas.wxss",
|
|
||||||
"./packageAPI/pages/page/get-wxml-node-info/get-wxml-node-info.wxss",
|
|
||||||
"./packageAPI/pages/page/page-scroll/page-scroll.wxss",
|
|
||||||
"./packageAPI/pages/page/intersection-observer/intersection-observer.wxss",
|
|
||||||
"./packageAPI/pages/device/clipboard-data/clipboard-data.wxss",
|
|
||||||
"./packageAPI/pages/device/bluetooth/bluetooth.wxss",
|
|
||||||
"./packageAPI/pages/device/bluetooth/slave/slave.wxss",
|
|
||||||
"./packageAPI/pages/device/screen-brightness/screen-brightness.wxss",
|
|
||||||
"./packageAPI/pages/device/vibrate/vibrate.wxss",
|
|
||||||
"./packageAPI/pages/device/add-contact/add-contact.wxss",
|
|
||||||
"./packageAPI/pages/device/wifi/wifi.wxss",
|
|
||||||
"./packageAPI/pages/device/get-network-type/get-network-type.wxss",
|
|
||||||
"./packageAPI/pages/device/on-network-status-change/on-network-status-change.wxss",
|
|
||||||
"./packageAPI/pages/device/get-system-info/get-system-info.wxss",
|
|
||||||
"./packageAPI/pages/device/on-compass-change/on-compass-change.wxss",
|
|
||||||
"./packageAPI/pages/device/make-phone-call/make-phone-call.wxss",
|
|
||||||
"./packageAPI/pages/device/scan-code/scan-code.wxss",
|
|
||||||
"./packageAPI/pages/device/on-accelerometer-change/on-accelerometer-change.wxss",
|
|
||||||
"./packageAPI/pages/device/capture-screen/capture-screen.wxss",
|
|
||||||
"./packageAPI/pages/device/ibeacon/ibeacon.wxss",
|
|
||||||
"./packageAPI/pages/device/get-battery-info/get-battery-info.wxss",
|
|
||||||
"./packageAPI/pages/media/image/image.wxss",
|
|
||||||
"./packageAPI/pages/media/voice/voice.wxss",
|
|
||||||
"./packageAPI/pages/media/file/file.wxss",
|
|
||||||
"./packageAPI/pages/media/load-font-face/load-font-face.wxss",
|
|
||||||
"./packageAPI/pages/media/background-audio/background-audio.wxss",
|
|
||||||
"./packageAPI/pages/media/video/video.wxss",
|
|
||||||
"./packageAPI/pages/media/audio/audio.wxss",
|
|
||||||
"./packageAPI/pages/media/media-container/media-container.wxss",
|
|
||||||
"./packageAPI/pages/location/get-location/get-location.wxss",
|
|
||||||
"./packageAPI/pages/location/open-location/open-location.wxss",
|
|
||||||
"./packageAPI/pages/location/choose-location/choose-location.wxss",
|
|
||||||
"./packageAPI/pages/network/request/request.wxss",
|
|
||||||
"./packageAPI/pages/network/web-socket/web-socket.wxss",
|
|
||||||
"./packageAPI/pages/network/upload-file/upload-file.wxss",
|
|
||||||
"./packageAPI/pages/network/download-file/download-file.wxss",
|
|
||||||
"./packageAPI/pages/network/mdns/mdns.wxss",
|
|
||||||
"./packageAPI/pages/network/udp-socket/udp-socket.wxss",
|
|
||||||
"./packageAPI/pages/storage/storage/storage.wxss",
|
|
||||||
"./packageAPI/pages/storage/get-background-fetch-data/get-background-fetch-data.wxss",
|
|
||||||
"./packageAPI/pages/storage/get-background-prefetch-data/get-background-prefetch-data.wxss",
|
|
||||||
"./packageAPI/pages/performance/get-performance/get-performance.wxss",
|
|
||||||
"./packageAPI/pages/worker/worker/worker.wxss",
|
|
||||||
"./packageAPI/pages/framework/two-way-bindings/two-way-bindings.wxss",
|
|
||||||
"./packageAPI/pages/framework/wxs/wxs.wxss",
|
|
||||||
"./packageAPI/pages/framework/resizable/resizable.wxss",
|
|
||||||
"./packageAPI/pages/framework/wxs/movable.wxss",
|
|
||||||
"./packageAPI/pages/framework/wxs/sidebar.wxss",
|
|
||||||
"./packageAPI/pages/framework/wxs/stick-top.wxss",
|
|
||||||
"./packageAPI/pages/framework/wxs/nearby.wxss",
|
|
||||||
"./app.wxss",
|
|
||||||
"./common/lib/weui.wxss",
|
|
||||||
"./miniprogram_npm/miniprogram-barrage/index.wxss",
|
|
||||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss",
|
|
||||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss",
|
|
||||||
"./miniprogram_npm/wxml-to-canvas/index.wxss",
|
|
||||||
"./page/API/components/set-tab-bar/set-tab-bar.wxss",
|
|
||||||
"./page/API/index.wxss",
|
|
||||||
"./page/cloud/index.wxss",
|
|
||||||
"./page/common/common.wxss",
|
|
||||||
"./page/common/index.wxss",
|
|
||||||
"./page/common/lib/weui.wxss",
|
|
||||||
"./page/component/index.wxss",
|
|
||||||
"./page/extend/index.wxss",
|
|
||||||
"--subpackage",
|
|
||||||
"packageAPI",
|
|
||||||
"-ll",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
samples.push([sample4, 4])
|
|
||||||
const test_wine = (config, id) => {
|
|
||||||
const wine = spawn(
|
|
||||||
path.resolve(__dirname, "../../../../../package.nw/js/vendor/wcsc.exe"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.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.common;
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(__dirname, `./${id}/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 = (config, id) => {
|
|
||||||
const node_exec = spawn(
|
|
||||||
path.resolve(__dirname, "../../../../nodejs/wcsc"),
|
|
||||||
config.args,
|
|
||||||
{
|
|
||||||
cwd: config.projectPath,
|
|
||||||
env: {
|
|
||||||
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, '' + id),
|
|
||||||
},
|
|
||||||
// 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.common;
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(__dirname, `./${id}/node_output.json`),
|
|
||||||
result
|
|
||||||
);
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(__dirname, `./${id}/node_stderr.json`),
|
|
||||||
Buffer.concat(errData)
|
|
||||||
);
|
|
||||||
resolve(result);
|
|
||||||
} else {
|
|
||||||
console.error("错误");
|
|
||||||
process.stderr.write(Buffer.concat(errData).toString());
|
|
||||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
|
||||||
reject(n);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const test = async (config, id) => {
|
|
||||||
try {
|
|
||||||
const node_result = await test_node(config, id);
|
|
||||||
const wine_result = await test_wine(config, id);
|
|
||||||
const t1 = JSON.parse(node_result);
|
|
||||||
const t2 = JSON.parse(wine_result);
|
|
||||||
console.log(util.isDeepStrictEqual(t1, t2))
|
|
||||||
} catch (err) {
|
|
||||||
console.error("错误:", err);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
(async ()=>{
|
|
||||||
for (const sample of samples) {
|
|
||||||
await test(sample[0], sample[1])
|
|
||||||
}
|
|
||||||
})()
|
|
BIN
compiler/wcc
BIN
compiler/wcc
Binary file not shown.
@ -1,4 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
wcc: require('./wcc'),
|
|
||||||
wcsc: require('./wcsc')
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,95 +0,0 @@
|
|||||||
const util = require('./util')
|
|
||||||
const path = require('path')
|
|
||||||
|
|
||||||
let wcc
|
|
||||||
|
|
||||||
function loadWccAddon() {
|
|
||||||
if (wcc) return
|
|
||||||
// wcc = require('../build/Release/wcc.node')
|
|
||||||
wcc = require('../src/wcc')
|
|
||||||
}
|
|
||||||
|
|
||||||
const fs = util.fs
|
|
||||||
|
|
||||||
exports = async function (options) {
|
|
||||||
|
|
||||||
loadWccAddon()
|
|
||||||
|
|
||||||
if (!options) throw Error('options is required')
|
|
||||||
|
|
||||||
const lazyload = !!options.lazyloadConfig
|
|
||||||
|
|
||||||
options = Object.assign(
|
|
||||||
{
|
|
||||||
files: [],
|
|
||||||
contents: [],
|
|
||||||
replaceContent: {},
|
|
||||||
verbose: false,
|
|
||||||
debug: false,
|
|
||||||
debugWXS: false,
|
|
||||||
showNewTree: false,
|
|
||||||
isPlugin: false,
|
|
||||||
addTestAttre: false,
|
|
||||||
independent: false,
|
|
||||||
genfuncname: '$gwx',
|
|
||||||
isCut: false,
|
|
||||||
cwd: process.cwd,
|
|
||||||
debug: false,
|
|
||||||
lazyload,
|
|
||||||
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.log('wcc get files', Date.now() - st, options.contents)
|
|
||||||
let result
|
|
||||||
try {
|
|
||||||
result = wcc(options)
|
|
||||||
} 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.log('wcc get output', Date.now() - st)
|
|
||||||
resolve(result)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'version', {
|
|
||||||
get() {
|
|
||||||
loadWccAddon()
|
|
||||||
return wcc.version
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
module.exports = exports
|
|
@ -1,93 +0,0 @@
|
|||||||
const util = require('./util')
|
|
||||||
const path = require('path')
|
|
||||||
const fs = util.fs
|
|
||||||
|
|
||||||
let wcsc
|
|
||||||
|
|
||||||
function loadWcscAddon() {
|
|
||||||
if (wcsc) return
|
|
||||||
// wcsc = require('../build/Release/wcsc.node')
|
|
||||||
wcsc = require('../src/wcsc')
|
|
||||||
}
|
|
||||||
|
|
||||||
function tranWcscResultToObject(resultStr) {
|
|
||||||
const resultArr = resultStr.split('=')
|
|
||||||
const result = {}
|
|
||||||
for (let i = 0, len = resultArr.length; i < len && resultArr[i + 1]; i += 2) {
|
|
||||||
result[resultArr[i]] = resultArr[i + 1]
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
exports = async function (options) {
|
|
||||||
|
|
||||||
loadWcscAddon()
|
|
||||||
|
|
||||||
if (!options) throw Error('options is required')
|
|
||||||
|
|
||||||
// avoid undefined or null
|
|
||||||
if (typeof options.subPackage !== 'string') {
|
|
||||||
delete options.subPackage
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof options.lazyload !== 'boolean') {
|
|
||||||
delete options.lazyload
|
|
||||||
}
|
|
||||||
|
|
||||||
options = Object.assign(
|
|
||||||
{
|
|
||||||
files: [],
|
|
||||||
contents: [],
|
|
||||||
pageCount: 0,
|
|
||||||
cwd: process.cwd,
|
|
||||||
replaceContent: {},
|
|
||||||
debug: false,
|
|
||||||
classPrefix: '',
|
|
||||||
lazyload: false,
|
|
||||||
},
|
|
||||||
options,
|
|
||||||
)
|
|
||||||
|
|
||||||
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) || []
|
|
||||||
}
|
|
||||||
|
|
||||||
let wccResult
|
|
||||||
try {
|
|
||||||
wccResult = await wcsc(options)
|
|
||||||
} catch (errmsg) {
|
|
||||||
throw new Error(errmsg)
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = options.lazyload ? wccResult : tranWcscResultToObject(wccResult)
|
|
||||||
|
|
||||||
if (options.output) {
|
|
||||||
const output = path.resolve(options.cwd, options.output)
|
|
||||||
const dir = path.dirname(output)
|
|
||||||
try {
|
|
||||||
await fs.stat(dir)
|
|
||||||
} catch (e) {
|
|
||||||
await fs.mkdir(dir, {
|
|
||||||
recursive: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
await fs.writeFile(output, JSON.stringify(result, null, 2), 'utf8')
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'version', {
|
|
||||||
get() {
|
|
||||||
loadWcscAddon()
|
|
||||||
return wcsc.version
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
module.exports = exports
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "miniprogram-wcc",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "WCC node C++ addon",
|
|
||||||
"main": "lib/index.js",
|
|
||||||
"scripts": {
|
|
||||||
"test": "node ./test/wcc/index && node ./test/wcsc/index",
|
|
||||||
"format": "prettier *.js test/*.js scripts/*.js --write"
|
|
||||||
},
|
|
||||||
"author": "coverguo",
|
|
||||||
"license": "MIT",
|
|
||||||
"devDependencies": {
|
|
||||||
"licia": "^1.21.2",
|
|
||||||
"node-gyp": "^7.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
@ -1,143 +0,0 @@
|
|||||||
const { spawn, spawnSync } = require('child_process')
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const os = require('os')
|
|
||||||
const { throws } = require('assert')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 wxss 编译器路径
|
|
||||||
*/
|
|
||||||
let wxssParserPath = ''
|
|
||||||
function getWXSSParsePath() {
|
|
||||||
if (wxssParserPath) return wxssParserPath
|
|
||||||
|
|
||||||
const fileName = process.platform === 'darwin' ? '../bin/mac/wcsc' : process.platform === 'linux' ? '../bin/linux/wcsc' : '../bin/windows/wcsc.exe'
|
|
||||||
wxssParserPath = path.join(__dirname, fileName)
|
|
||||||
|
|
||||||
// 尝试修改权限
|
|
||||||
try {
|
|
||||||
fs.chmodSync(wxssParserPath, 0o777)
|
|
||||||
} catch (err) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxssParserPath
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取完整文件列表
|
|
||||||
*/
|
|
||||||
function getAllFiles(rootPath, files) {
|
|
||||||
const ret = []
|
|
||||||
let compWxssNum = 0
|
|
||||||
|
|
||||||
for (let i = 0, len = files.length; i < len; i++) {
|
|
||||||
const file = files[i]
|
|
||||||
|
|
||||||
let fileJson = null
|
|
||||||
try {
|
|
||||||
fileJson = require(path.join(rootPath, `${file}.json`))
|
|
||||||
} catch(err) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fileJson) {
|
|
||||||
// 组件 wxss
|
|
||||||
compWxssNum++
|
|
||||||
ret.unshift(`${file}.wxss`)
|
|
||||||
} else {
|
|
||||||
ret.push(`${file}.wxss`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
list: ret,
|
|
||||||
compWxssNum,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 编译 wxss 到 js
|
|
||||||
*/
|
|
||||||
async function wxssToJS(options) {
|
|
||||||
// 创建临时目录
|
|
||||||
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'wcsc_'))
|
|
||||||
// 判断是否replace,是写入replace,否则拷贝文件到临时目录
|
|
||||||
for(let file of options.files){
|
|
||||||
if (typeof options.replaceContent[file] === 'string') {
|
|
||||||
// 写入替换内容
|
|
||||||
fs.mkdirSync(path.dirname(path.resolve(tmp, file)), {recursive:true})
|
|
||||||
fs.writeFileSync(path.resolve(tmp, file), options.replaceContent[file])
|
|
||||||
}else{
|
|
||||||
// 复制原文件
|
|
||||||
fs.mkdirSync(path.dirname(path.resolve(tmp, file)), {recursive:true})
|
|
||||||
fs.copyFileSync(path.resolve(options.cwd, file), path.resolve(tmp, file))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 使用临时目录执行wcc
|
|
||||||
options.cwd = tmp
|
|
||||||
|
|
||||||
let rootPath = options.cwd, files=options.files
|
|
||||||
// files = getAllFiles(rootPath, files)
|
|
||||||
|
|
||||||
const args = ['-db', '-pc', String(options.pageCount)].concat(files)
|
|
||||||
options.subPackage && (args.push("--subpackage"), args.push(options.subPackage.replace(/\/$/, "")));
|
|
||||||
const wxssParserPath = getWXSSParsePath()
|
|
||||||
// console.warn('wcsc args: ', args)
|
|
||||||
// const wcsc = spawnSync(wxssParserPath, args, { cwd: rootPath })
|
|
||||||
return new Promise((resolve, reject)=>{
|
|
||||||
|
|
||||||
const wcsc = spawn(wxssParserPath, args, {
|
|
||||||
cwd: rootPath,
|
|
||||||
});
|
|
||||||
const spwanData = [],
|
|
||||||
errData = [];
|
|
||||||
wcsc.stdout.on("data", (e) => {
|
|
||||||
spwanData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.stderr.on("data", (e) => {
|
|
||||||
errData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.on("close", (code) => {
|
|
||||||
console.warn('close', new Date().getTime()/1000)
|
|
||||||
if (code === 0) {
|
|
||||||
let result = Buffer.concat(spwanData).toString();
|
|
||||||
if(options.lazyload){
|
|
||||||
result = result.split('=')
|
|
||||||
let funcList = {}
|
|
||||||
for (let i = 0, len = result.length; i < len && result[i + 1]; i += 2) {
|
|
||||||
funcList[result[i]] = result[i + 1]
|
|
||||||
.replace(
|
|
||||||
/[^\\]((\\x[\da-f]{2}|\\u[\da-f]{4})){1,}/gi,
|
|
||||||
function ($0, $1, $2) {
|
|
||||||
return eval('"' + $0 + '"');
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.replace(/\\[\s\S]{1}/gi, function ($0, $1, $2) {
|
|
||||||
// console.log($0, $1)
|
|
||||||
const c = $0 === "\\n" ? "\n" : $0[1];
|
|
||||||
return c
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const t = funcList
|
|
||||||
funcList = {
|
|
||||||
common: t.comm,
|
|
||||||
pageWxss: {}
|
|
||||||
}
|
|
||||||
for(let key in t){
|
|
||||||
if(key.endsWith('.wxss')){
|
|
||||||
funcList.pageWxss[key] = t[key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
result = funcList
|
|
||||||
}
|
|
||||||
resolve(result)
|
|
||||||
} else {
|
|
||||||
throw new Error(`编译 .wxss 文件错误(${wcsc.status}):${wcsc.stderr.toString()}`)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = wxssToJS
|
|
@ -1,93 +0,0 @@
|
|||||||
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
|
|
@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "miniprogram-wcc",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "WCC node C++ addon",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"install": "node-gyp-build",
|
|
||||||
"rebuild": "node-gyp rebuild",
|
|
||||||
"build:dist": "node scripts/build",
|
|
||||||
"build": "node-gyp build",
|
|
||||||
"test": "node ./test/index",
|
|
||||||
"format": "prettier *.js test/*.js scripts/*.js --write"
|
|
||||||
},
|
|
||||||
"author": "coverguo",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"node-gyp-build": "^4.2.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"eustia-module": "^1.21.2",
|
|
||||||
"licia": "^1.21.2",
|
|
||||||
"ncp": "^2.0.0",
|
|
||||||
"node-gyp": "^7.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
const path = require('path')
|
|
||||||
const vm = require('vm')
|
|
||||||
const glob = require('glob')
|
|
||||||
const unescapeJs = require('unescape-js')
|
|
||||||
|
|
||||||
const wcc = require('./wcc')
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
wxmlToJs(rootPath) {
|
|
||||||
// wcc 编译器需要完整的 wxml 文件列表
|
|
||||||
const files = glob.sync('**/*.wxml', {
|
|
||||||
cwd: rootPath,
|
|
||||||
nodir: true,
|
|
||||||
dot: true,
|
|
||||||
ignore: ['node_modules/**/*.wxml'],
|
|
||||||
})
|
|
||||||
const wxsFiles = glob.sync('**/*.wxs', {
|
|
||||||
cwd: rootPath,
|
|
||||||
nodir: true,
|
|
||||||
dot: true,
|
|
||||||
ignore: ['node_modules/**/*.wxs'],
|
|
||||||
})
|
|
||||||
const compileResult = wcc(rootPath, files.map(file => file.substring(0, file.length - 5)), wxsFiles)
|
|
||||||
|
|
||||||
return `
|
|
||||||
${compileResult};
|
|
||||||
return $gwx;
|
|
||||||
`
|
|
||||||
},
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
BIN
compiler/wcsc
BIN
compiler/wcsc
Binary file not shown.
@ -1,91 +0,0 @@
|
|||||||
const util = require('./util')
|
|
||||||
const path = require('path')
|
|
||||||
const fs = util.fs
|
|
||||||
|
|
||||||
let wcsc
|
|
||||||
try {
|
|
||||||
wcsc = require('./src/wcsc')
|
|
||||||
} catch (err) {
|
|
||||||
console.error('wcsc', err)
|
|
||||||
// wcsc = require('./build/Release/wcsc.node')
|
|
||||||
}
|
|
||||||
|
|
||||||
function tranWcscResultToObject(resultStr) {
|
|
||||||
const resultArr = resultStr.split('=')
|
|
||||||
const result = {}
|
|
||||||
for (let i = 0, len = resultArr.length; i < len && resultArr[i + 1]; i += 2) {
|
|
||||||
result[resultArr[i]] = resultArr[i + 1]
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
exports = async function (options) {
|
|
||||||
if (!options) throw Error('options is required')
|
|
||||||
|
|
||||||
// avoid undefined or null
|
|
||||||
if (typeof options.subPackage !== 'string') {
|
|
||||||
delete options.subPackage
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof options.lazyload !== 'boolean') {
|
|
||||||
delete options.lazyload
|
|
||||||
}
|
|
||||||
|
|
||||||
options = Object.assign(
|
|
||||||
{
|
|
||||||
files: [],
|
|
||||||
contents: [],
|
|
||||||
pageCount: 0,
|
|
||||||
cwd: process.cwd,
|
|
||||||
replaceContent: {},
|
|
||||||
debug: false,
|
|
||||||
classPrefix: '',
|
|
||||||
lazyload: false,
|
|
||||||
},
|
|
||||||
options,
|
|
||||||
)
|
|
||||||
|
|
||||||
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) || []
|
|
||||||
}
|
|
||||||
|
|
||||||
let wcscResult
|
|
||||||
try {
|
|
||||||
console.warn('wcsc options', options)
|
|
||||||
wcscResult = await wcsc(options)
|
|
||||||
console.warn('wcsc ok')
|
|
||||||
} catch (errmsg) {
|
|
||||||
throw new Error(errmsg)
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = options.lazyload ? wcscResult : tranWcscResultToObject(wcscResult)
|
|
||||||
|
|
||||||
if (options.output) {
|
|
||||||
const output = path.resolve(options.cwd, options.output)
|
|
||||||
const dir = path.dirname(output)
|
|
||||||
try {
|
|
||||||
await fs.stat(dir)
|
|
||||||
} catch (e) {
|
|
||||||
await fs.mkdir(dir, {
|
|
||||||
recursive: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
await fs.writeFile(output, JSON.stringify(result, null, 2), 'utf8')
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'version', {
|
|
||||||
get() {
|
|
||||||
return wcsc.version
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
module.exports = exports
|
|
@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "miniprogram-wcsc",
|
|
||||||
"version": "0.0.2",
|
|
||||||
"description": "WXSS node C++ addon",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"install": "node-gyp-build",
|
|
||||||
"rebuild": "node-gyp rebuild",
|
|
||||||
"build:dist": "node scripts/build",
|
|
||||||
"build": "node-gyp build",
|
|
||||||
"test": "node ./test/index",
|
|
||||||
"format": "prettier *.js test/*.js scripts/*.js --write"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git@git.code.oa.com:redhoodsu/wxss.git"
|
|
||||||
},
|
|
||||||
"author": "redhoodsu",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"node-gyp-build": "^4.2.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"eustia-module": "^1.21.2",
|
|
||||||
"licia": "^1.21.2",
|
|
||||||
"ncp": "^2.0.0",
|
|
||||||
"node-gyp": "^7.0.0",
|
|
||||||
"prettier": "^2.3.1"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
const path = require('path')
|
|
||||||
const vm = require('vm')
|
|
||||||
const glob = require('glob')
|
|
||||||
const unescapeJs = require('unescape-js')
|
|
||||||
|
|
||||||
const wcc = require('./wcc')
|
|
||||||
const wcsc = require('./wcsc')
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
wxmlToJs(rootPath) {
|
|
||||||
// wcc 编译器需要完整的 wxml 文件列表
|
|
||||||
const files = glob.sync('**/*.wxml', {
|
|
||||||
cwd: rootPath,
|
|
||||||
nodir: true,
|
|
||||||
dot: true,
|
|
||||||
ignore: ['node_modules/**/*.wxml'],
|
|
||||||
})
|
|
||||||
const wxsFiles = glob.sync('**/*.wxs', {
|
|
||||||
cwd: rootPath,
|
|
||||||
nodir: true,
|
|
||||||
dot: true,
|
|
||||||
ignore: ['node_modules/**/*.wxs'],
|
|
||||||
})
|
|
||||||
const compileResult = wcc(rootPath, files.map(file => file.substr(0, file.length - 5)), wxsFiles)
|
|
||||||
|
|
||||||
return `
|
|
||||||
${compileResult};
|
|
||||||
return $gwx;
|
|
||||||
`
|
|
||||||
},
|
|
||||||
|
|
||||||
wxssToJs(rootPath) {
|
|
||||||
// wcsc 编译器需要完整的 wxss 文件列表
|
|
||||||
const files = glob.sync('**/*.wxss', {
|
|
||||||
cwd: rootPath,
|
|
||||||
nodir: true,
|
|
||||||
dot: true,
|
|
||||||
ignore: ['node_modules/**/*.wxss'],
|
|
||||||
})
|
|
||||||
const compileResult = wcsc(rootPath, files.map(file => file.substr(0, file.length - 5)))
|
|
||||||
|
|
||||||
// 拼装 wxss map 字符串
|
|
||||||
let wxssMap = ''
|
|
||||||
Object.keys(compileResult).forEach(key => {
|
|
||||||
if (path.extname(key) === '.wxss') {
|
|
||||||
wxssMap += `'${key}': ${unescapeJs(compileResult[key])},`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return `
|
|
||||||
${unescapeJs(compileResult.comm)};
|
|
||||||
var wxssMap = { ${wxssMap} };
|
|
||||||
return function (filePath) {
|
|
||||||
return wxssMap[filePath];
|
|
||||||
};
|
|
||||||
`
|
|
||||||
},
|
|
||||||
}
|
|
@ -1,143 +0,0 @@
|
|||||||
const { spawn, spawnSync } = require('child_process')
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const os = require('os')
|
|
||||||
const { throws } = require('assert')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 wxss 编译器路径
|
|
||||||
*/
|
|
||||||
let wxssParserPath = ''
|
|
||||||
function getWXSSParsePath() {
|
|
||||||
if (wxssParserPath) return wxssParserPath
|
|
||||||
|
|
||||||
const fileName = process.platform === 'darwin' ? '../bin/mac/wcsc' : process.platform === 'linux' ? '../bin/linux/wcsc' : '../bin/windows/wcsc.exe'
|
|
||||||
wxssParserPath = path.join(__dirname, fileName)
|
|
||||||
|
|
||||||
// 尝试修改权限
|
|
||||||
try {
|
|
||||||
fs.chmodSync(wxssParserPath, 0o777)
|
|
||||||
} catch (err) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxssParserPath
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取完整文件列表
|
|
||||||
*/
|
|
||||||
function getAllFiles(rootPath, files) {
|
|
||||||
const ret = []
|
|
||||||
let compWxssNum = 0
|
|
||||||
|
|
||||||
for (let i = 0, len = files.length; i < len; i++) {
|
|
||||||
const file = files[i]
|
|
||||||
|
|
||||||
let fileJson = null
|
|
||||||
try {
|
|
||||||
fileJson = require(path.join(rootPath, `${file}.json`))
|
|
||||||
} catch(err) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fileJson) {
|
|
||||||
// 组件 wxss
|
|
||||||
compWxssNum++
|
|
||||||
ret.unshift(`${file}.wxss`)
|
|
||||||
} else {
|
|
||||||
ret.push(`${file}.wxss`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
list: ret,
|
|
||||||
compWxssNum,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 编译 wxss 到 js
|
|
||||||
*/
|
|
||||||
async function wxssToJS(options) {
|
|
||||||
// 创建临时目录
|
|
||||||
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'wcsc_'))
|
|
||||||
// 判断是否replace,是写入replace,否则拷贝文件到临时目录
|
|
||||||
for(let file of options.files){
|
|
||||||
if (typeof options.replaceContent[file] === 'string') {
|
|
||||||
// 写入替换内容
|
|
||||||
fs.mkdirSync(path.dirname(path.resolve(tmp, file)), {recursive:true})
|
|
||||||
fs.writeFileSync(path.resolve(tmp, file), options.replaceContent[file])
|
|
||||||
}else{
|
|
||||||
// 复制原文件
|
|
||||||
fs.mkdirSync(path.dirname(path.resolve(tmp, file)), {recursive:true})
|
|
||||||
fs.copyFileSync(path.resolve(options.cwd, file), path.resolve(tmp, file))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 使用临时目录执行wcc
|
|
||||||
options.cwd = tmp
|
|
||||||
|
|
||||||
let rootPath = options.cwd, files=options.files
|
|
||||||
// files = getAllFiles(rootPath, files)
|
|
||||||
|
|
||||||
const args = ['-db', '-pc', String(options.pageCount)].concat(files)
|
|
||||||
options.subPackage && (args.push("--subpackage"), args.push(options.subPackage.replace(/\/$/, "")));
|
|
||||||
const wxssParserPath = getWXSSParsePath()
|
|
||||||
// console.warn('wcsc args: ', args)
|
|
||||||
// const wcsc = spawnSync(wxssParserPath, args, { cwd: rootPath })
|
|
||||||
return new Promise((resolve, reject)=>{
|
|
||||||
|
|
||||||
const wcsc = spawn(wxssParserPath, args, {
|
|
||||||
cwd: rootPath,
|
|
||||||
});
|
|
||||||
const spwanData = [],
|
|
||||||
errData = [];
|
|
||||||
wcsc.stdout.on("data", (e) => {
|
|
||||||
spwanData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.stderr.on("data", (e) => {
|
|
||||||
errData.push(e);
|
|
||||||
});
|
|
||||||
wcsc.on("close", (code) => {
|
|
||||||
console.warn('close', new Date().getTime()/1000)
|
|
||||||
if (code === 0) {
|
|
||||||
let result = Buffer.concat(spwanData).toString();
|
|
||||||
if(options.lazyload){
|
|
||||||
result = result.split('=')
|
|
||||||
let funcList = {}
|
|
||||||
for (let i = 0, len = result.length; i < len && result[i + 1]; i += 2) {
|
|
||||||
funcList[result[i]] = result[i + 1]
|
|
||||||
.replace(
|
|
||||||
/[^\\]((\\x[\da-f]{2}|\\u[\da-f]{4})){1,}/gi,
|
|
||||||
function ($0, $1, $2) {
|
|
||||||
return eval('"' + $0 + '"');
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.replace(/\\[\s\S]{1}/gi, function ($0, $1, $2) {
|
|
||||||
// console.log($0, $1)
|
|
||||||
const c = $0 === "\\n" ? "\n" : $0[1];
|
|
||||||
return c
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const t = funcList
|
|
||||||
funcList = {
|
|
||||||
common: t.comm,
|
|
||||||
pageWxss: {}
|
|
||||||
}
|
|
||||||
for(let key in t){
|
|
||||||
if(key.endsWith('.wxss')){
|
|
||||||
funcList.pageWxss[key] = t[key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
result = funcList
|
|
||||||
}
|
|
||||||
resolve(result)
|
|
||||||
} else {
|
|
||||||
throw new Error(`编译 .wxss 文件错误(${wcsc.status}):${wcsc.stderr.toString()}`)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = wxssToJS
|
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
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
|
|
||||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
|
||||||
|
|
||||||
if [[ $@ =~ -ll ]];then
|
|
||||||
wine "$DIR/wcc.exe" "$@"
|
|
||||||
else
|
|
||||||
"$DIR/wcc.bin" "$@"
|
|
||||||
fi
|
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
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
|
|
||||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
|
||||||
|
|
||||||
if [[ $@ =~ -ll ]];then
|
|
||||||
wine "$DIR/wcsc.exe" "$@"
|
|
||||||
else
|
|
||||||
"$DIR/wcsc.bin" "$@"
|
|
||||||
fi
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user