mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
97 lines
4.3 KiB
JavaScript
97 lines
4.3 KiB
JavaScript
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
const { spawn } = require("child_process");
|
|
|
|
|
|
const wcc = (args, projectPath, outputPath = undefined) => {
|
|
const node_exec = spawn(
|
|
path.resolve(__dirname, "../../../nodejs/wcc"),
|
|
args,
|
|
{
|
|
cwd: projectPath,
|
|
env: {
|
|
WX_DEBUG_COMPILER_OUTPUT: outputPath,
|
|
},
|
|
// 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);
|
|
outputPath && require('fs').writeFileSync(`${outputPath}/linux_err.js`, Buffer.concat(errData).toString())
|
|
if (0 === n) {
|
|
let result = Buffer.concat(spwanData).toString();
|
|
// process.stdout.write(result);
|
|
// result = JSON.parse(result);
|
|
resolve(result);
|
|
} else {
|
|
process.stderr.write(Buffer.concat(errData).toString());
|
|
// process.stderr.write(Buffer.concat(spwanData).toString());
|
|
reject(n);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
const test = async () => {
|
|
const projectPath = path.resolve(
|
|
__dirname,
|
|
"../../examples/miniprogram-demo/miniprogram"
|
|
);
|
|
const args = [
|
|
"-d",
|
|
"--split",
|
|
">_<1989",
|
|
"-xc",
|
|
"12>_<1989./component/navigation-bar/navigation-bar.wxml>_<19891>_<1989mp-navigation-bar>_<1989./components/navigation-bar/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./components/page-scroll/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./miniprogram_npm/miniprogram-barrage/index.wxml>_<19890>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<19890>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<19890>_<1989./miniprogram_npm/wxml-to-canvas/index.wxml>_<19890>_<1989./page/API/index.wxml>_<19892>_<1989set-tab-bar>_<1989mp-navigation-bar>_<1989./page/API/components/set-tab-bar/set-tab-bar.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/cloud/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/component/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/extend/index.wxml>_<19891>_<1989mp-navigation-bar",
|
|
"-lla",
|
|
"./component/navigation-bar/navigation-bar>_<1989./components/navigation-bar/index>_<1989./components/page-scroll/index>_<1989./miniprogram_npm/miniprogram-barrage/index>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<1989./miniprogram_npm/wxml-to-canvas/index>_<1989./page/API/index>_<1989./page/API/components/set-tab-bar/set-tab-bar>_<1989./page/cloud/index>_<1989./page/component/index>_<1989./page/extend/index",
|
|
"./common/foot.wxml",
|
|
"./common/head.wxml",
|
|
"./component/navigation-bar/navigation-bar.wxml",
|
|
"./components/navigation-bar/index.wxml",
|
|
"./components/page-scroll/index.wxml",
|
|
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
|
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
|
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
|
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
|
"./page/API/index.wxml",
|
|
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
|
"./page/cloud/index.wxml",
|
|
"./page/common/foot.wxml",
|
|
"./page/common/head.wxml",
|
|
"./page/component/index.wxml",
|
|
"./page/extend/index.wxml",
|
|
"-gn",
|
|
"$gwx",
|
|
];
|
|
const storagePath = path.resolve(
|
|
__dirname,
|
|
`miniprogram-demo/tmp`
|
|
);
|
|
try {
|
|
fs.mkdirSync(storagePath, { recursive: true });
|
|
} catch (error) {}
|
|
const n = JSON.parse(await wcc(args, projectPath, storagePath));
|
|
// const w = JSON.parse(await wine.wcc(args, projectPath));
|
|
// fs.writeFileSync(
|
|
// `${storagePath}/wine-output.json`,
|
|
// JSON.stringify(w, null, 4)
|
|
// );
|
|
fs.writeFileSync(
|
|
`${storagePath}/node-output.json`,
|
|
JSON.stringify(n, null, 4)
|
|
);
|
|
};
|
|
test();
|