UNPKG

@zougt/vite-plugin-theme-preprocessor

Version:
58 lines (57 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.resetStylePreprocessor = resetStylePreprocessor; var _path = _interopRequireDefault(require("path")); var _fsExtra = _interopRequireDefault(require("fs-extra")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * 复原源处理器包的位置 * @param {*} { langs: ['scss','less'] } * @returns */ function resetStylePreprocessor(options = {}) { if (!Array.isArray(options.langs) || !options.langs.length) { return Promise.resolve(); } options.langs.forEach(lang => { const langName = lang === "scss" ? "sass" : lang; let isSubstitute = false; let resolveDir = ""; let resolveName = ""; try { const resolved = require.resolve(langName).replace(/\\/g, "/"); const pathnames = resolved.split("/"); const index = pathnames.findIndex(str => new RegExp(`^_${langName}@`).test(str) || str === langName); resolveName = pathnames[index]; resolveDir = `${pathnames.slice(0, index).join("/")}/${resolveName}`; isSubstitute = _fsExtra.default.existsSync(`${resolveDir}/preprocessor-substitute-options.js`); // eslint-disable-next-line no-empty } catch (e) {} if (isSubstitute) { // 替换处理器 if (_fsExtra.default.existsSync(resolveDir)) { const preprocessorFiles = _fsExtra.default.readdirSync(resolveDir) || []; preprocessorFiles.forEach(name => { if (name !== "node_modules" && name !== "bin") { _fsExtra.default.removeSync(`${resolveDir}/${name}`); } }); } const originalPreDir = _path.default.resolve("node_modules/.zougtTheme/original", resolveName).replace(/\\/g, "/"); if (_fsExtra.default.existsSync(originalPreDir)) { const originalFiles = _fsExtra.default.readdirSync(originalPreDir) || []; originalFiles.forEach(name => { if (name !== "node_modules" && name !== "bin") { _fsExtra.default.copySync(`${originalPreDir}/${name}`, `${resolveDir}/${name}`); } }); } } }); return Promise.resolve(); } var _default = resetStylePreprocessor; exports.default = _default;