You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
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);
|
|
|