55 lines
2.7 KiB
JavaScript
55 lines
2.7 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const fs_1 = __importDefault(require("fs"));
|
|
const child_process_1 = require("child_process");
|
|
require("dotenv").config({ path: "./../.env" });
|
|
const sourceFile = process.argv.indexOf("--src") >= 0
|
|
? process.argv[process.argv.indexOf("--src") + 1]
|
|
: null;
|
|
const destinationFile = process.argv.indexOf("--dst") >= 0
|
|
? process.argv[process.argv.indexOf("--dst") + 1]
|
|
: null;
|
|
console.log("Running Less compiler ...");
|
|
const sourceFiles = sourceFile === null || sourceFile === void 0 ? void 0 : sourceFile.split(",");
|
|
const dstFiles = destinationFile === null || destinationFile === void 0 ? void 0 : destinationFile.split(",");
|
|
if (!sourceFiles || !dstFiles) {
|
|
throw new Error("No Source or Destination Files!");
|
|
}
|
|
for (let i = 0; i < sourceFiles.length; i++) {
|
|
const srcFolder = sourceFiles[i];
|
|
const dstFile = dstFiles[i];
|
|
fs_1.default.watch(srcFolder, { recursive: true }, (evtType, prev) => {
|
|
if ((prev === null || prev === void 0 ? void 0 : prev.match(/\(/)) || (prev === null || prev === void 0 ? void 0 : prev.match(/\.(j|t)s$/i))) {
|
|
return;
|
|
}
|
|
let finalSrcPath = `${srcFolder}/main.less`;
|
|
let finalDstPath = dstFile;
|
|
if (prev === null || prev === void 0 ? void 0 : prev.match(/\[/)) {
|
|
const paths = prev.split("/");
|
|
const targetPathFull = paths[paths.length - 1];
|
|
const targetPath = targetPathFull
|
|
.replace(/\[|\]/g, "")
|
|
.replace(/\.less/, "");
|
|
const destinationFileParentFolder = dstFile.replace(/\/[^\/]+\.css$/, "");
|
|
const targetDstFilePath = `${destinationFileParentFolder}/${targetPath}.css`;
|
|
finalSrcPath = `${srcFolder}/${targetPathFull}`;
|
|
finalDstPath = targetDstFilePath;
|
|
}
|
|
(0, child_process_1.exec)(`lessc ${finalSrcPath} ${(finalDstPath === null || finalDstPath === void 0 ? void 0 : finalDstPath.match(/\.css$/))
|
|
? finalDstPath
|
|
: finalDstPath.replace(/\/$/, "") + "/_main.css"}`, (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.log("ERROR =>", error.message);
|
|
if (!(evtType === null || evtType === void 0 ? void 0 : evtType.match(/change/i)) && (prev === null || prev === void 0 ? void 0 : prev.match(/\[/))) {
|
|
fs_1.default.unlinkSync(finalDstPath);
|
|
}
|
|
return;
|
|
}
|
|
console.log("Less Compilation \x1b[32msuccessful\x1b[0m!");
|
|
});
|
|
});
|
|
}
|