diff --git a/.npmignore b/.npmignore index baaa993b9..f52935001 100644 --- a/.npmignore +++ b/.npmignore @@ -1,7 +1,4 @@ * -!src/less/*.less -!src/less/lib/*.less -!src/less/resource/*.less !dist/lib/*.d.ts !dist/lib/**/*.d.ts !dist/font.css diff --git a/dist/images/1x/icon/auto_normal.png b/dist/images/1x/icon/auto_normal.png new file mode 100644 index 000000000..527212c10 Binary files /dev/null and b/dist/images/1x/icon/auto_normal.png differ diff --git a/dist/images/1x/icon/auto_select.png b/dist/images/1x/icon/auto_select.png new file mode 100644 index 000000000..49423cac0 Binary files /dev/null and b/dist/images/1x/icon/auto_select.png differ diff --git a/dist/images/1x/icon/dark/trans_disable.png b/dist/images/1x/icon/dark/trans_disable.png new file mode 100644 index 000000000..c070eb9bb Binary files /dev/null and b/dist/images/1x/icon/dark/trans_disable.png differ diff --git a/dist/images/2x/background/trans_disable.png b/dist/images/2x/background/trans_disable.png new file mode 100644 index 000000000..c070eb9bb Binary files /dev/null and b/dist/images/2x/background/trans_disable.png differ diff --git a/dist/images/2x/icon/dark/trans_disable.png b/dist/images/2x/icon/dark/trans_disable.png new file mode 100644 index 000000000..c070eb9bb Binary files /dev/null and b/dist/images/2x/icon/dark/trans_disable.png differ diff --git a/lib/prepublish/prepublish.js b/lib/prepublish/prepublish.js index 138ba1447..5cc1d3d84 100644 --- a/lib/prepublish/prepublish.js +++ b/lib/prepublish/prepublish.js @@ -1,5 +1,6 @@ -const { resolve } = require("path"); -const { writeFileSync } = require("fs"); +const { resolve, relative, join } = require("path"); +const { writeFileSync, readdirSync, statSync } = require("fs"); +const { spawnSync } = require('child_process'); function pad2(n) {// always returns a string return (n < 10 ? "0" : "") + n; @@ -27,3 +28,48 @@ 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 readDirSync(directoryPath) { + let content = ''; + const pa = readdirSync(directoryPath); + pa.forEach(file => { + const filePath = `${directoryPath}/${file}`; + const info = statSync(filePath); + if (info.isDirectory()) { + content += readDirSync(filePath); + } else { + content += `@import "./${relative(lessPath, filePath)}";\n`; + } + }); + + return content; +} + +function finalizeCompile() { + const componentsLessContent = readDirSync(lessPath); + + writeFileSync( + join(lessPath, 'fineui.less'), + componentsLessContent, + ); +} + +removeFiles(`${lessPath}/images`); +removeFiles(`${lessPath}/font`); +removeFiles(`${lessPath}/fineui.less`); + +finalizeCompile(); + +copyFiles(`${process.cwd()}/dist/images`, lessPath); +copyFiles(`${process.cwd()}/dist/font`, lessPath);