const { resolve, join } = require("path"); const { writeFileSync } = require("fs"); const { spawnSync } = require('child_process'); const { bundleWithoutNormalize } = require('../../webpack/attachments'); function pad2(n) {// always returns a string return (n < 10 ? "0" : "") + n; } const d = new Date(); const version = d.getFullYear() + pad2(d.getMonth() + 1) + pad2(d.getDate()) + pad2(d.getHours()) + pad2(d.getMinutes()) + pad2(d.getSeconds()); const packageJSON = require("../../package.json"); const versionChars = packageJSON.version.split("."); versionChars[versionChars.length - 1] = version; packageJSON.version = versionChars.join("."); packageJSON.publishConfig.registry = 'https://npm.fineres.com/'; packageJSON.name = "@fui/core"; writeFileSync(resolve(__dirname, "../../package.json"), JSON.stringify(packageJSON, null, 2)); // 将less打包成fineui.less发布到npm以供用户定制主题 const lessPath = join(process.cwd(), '/src/less'); function copyFiles(from, to) { spawnSync('cp', ['-r', from, to]); } function removeFiles(src) { spawnSync('rm', ['-rf', src]); } function finalizeCompile() { let lessContent = ''; bundleWithoutNormalize.forEach(path => { const relativePath = path.replace(/.*src\/less/, 'src/less').replace(/.*public\/less/, 'public/less'); lessContent += `@import "../../${relativePath}";\n`; }); writeFileSync( join(lessPath, 'fineui.less'), lessContent, ); } removeFiles(`${lessPath}/font`); removeFiles(`${lessPath}/fineui.less`); finalizeCompile(); copyFiles(`${process.cwd()}/dist/font`, lessPath);