mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-07 00:02:14 +08:00
239 lines
10 KiB
JavaScript
239 lines
10 KiB
JavaScript
#!/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])
|
|
}
|
|
})()
|