From eeb5f95b70d87ed6540a53ef9a17c4cbcf924419 Mon Sep 17 00:00:00 2001 From: oasis Date: Tue, 10 Dec 2024 17:12:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E6=9E=84=E5=BB=BA=E5=85=A8=E9=87=8F?= =?UTF-8?q?=20css=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build.mjs | 75 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 21 deletions(-) diff --git a/scripts/build.mjs b/scripts/build.mjs index ac55a8662f..c5ace9e444 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -173,6 +173,32 @@ async function buildUMD(p) { } async function buildAllCSS() { + // 拷贝styles + async function copyStyles() { + await copy( + resolve(__dirname, '../src/styles'), + resolve(__dirname, '../dist/styles') + ) + + const content = [ + `@import './styles/theme-default.scss';`, + `@import './styles/variables.scss';`, + `@import './styles/mixins/index.scss';`, + `@import './styles/animation/index.scss';`, + ] + const projectID = process.env.VITE_APP_PROJECT_ID + if (projectID) { + content[1] = `@import '../variables-${projectID}.scss';` + } + const scssFiles = await glob(['dist/es/packages/**/*.scss']) + scssFiles.forEach((file) => { + content.push( + `@import '${relativeFilePath('/dist/style.scss', '/' + file)}';` + ) + }) + dest('dist/style.scss', content.join('\n')) + } + await copyStyles() await vite.build({ logLevel: 'error', resolve: { @@ -181,7 +207,7 @@ async function buildAllCSS() { build: { emptyOutDir: false, lib: { - entry: './dist/styles/themes/default.scss', + entry: './dist/style.scss', formats: ['es'], name: 'style', fileName: 'style', @@ -190,6 +216,29 @@ async function buildAllCSS() { }) } +async function buildThemeCSS() { + await vite.build({ + logLevel: 'error', + resolve: { + alias: [{ find: '@', replacement: resolve(__dirname, '../src') }], + }, + build: { + emptyOutDir: false, + rollupOptions: { + output: [ + { + dir: 'dist/styles/themes', + assetFileNames: 'default.css', + }, + ], + }, + lib: { + entry: './dist/styles/themes/default.scss', + }, + }, + }) +} + // 拷贝styles async function copyStyles() { await copy( @@ -296,26 +345,6 @@ async function buildCSS(p) { } } -// async function exportProps() { -// const types = [] -// const a = await readFile(join(__dirname, '../src/config.json')) -// const componentsConfig = JSON.parse(a.toString()) -// componentsConfig.nav.forEach((item) => { -// item.packages.forEach((element) => { -// const { name, show, exportEmpty } = element -// if (show || exportEmpty) { -// const lowerName = name.toLowerCase() -// if (lowerName === 'icon') return -// types.push(`export * from './${lowerName}/index'`) -// } -// }) -// }) -// await appendFile( -// join(__dirname, '../dist/es/packages/nutui.react.build.d.ts'), -// types.join('\n') -// ) -// } - console.time('clean dist') await deleteAsync('dist') console.timeEnd('clean dist') @@ -346,6 +375,10 @@ console.time('Build All CSS') await buildAllCSS() console.timeEnd('Build All CSS') +console.time('Build Theme CSS') +await buildThemeCSS() +console.timeEnd('Build Theme CSS') + console.time('Build Declaration') await buildDeclaration() console.timeEnd('Build Declaration') From 8cf7fca8e981fdd8d6e1b1225b6860f90f02e812 Mon Sep 17 00:00:00 2001 From: oasis Date: Tue, 10 Dec 2024 17:16:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E6=9E=84=E5=BB=BA=E5=85=A8=E9=87=8F?= =?UTF-8?q?=20css=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build-taro.mjs | 93 ++++++++++++++++++++++++++++++++++-------- scripts/build.mjs | 1 + 2 files changed, 76 insertions(+), 18 deletions(-) diff --git a/scripts/build-taro.mjs b/scripts/build-taro.mjs index ae4f270888..99663d74cc 100644 --- a/scripts/build-taro.mjs +++ b/scripts/build-taro.mjs @@ -213,6 +213,32 @@ async function buildUMD() { } async function buildAllCSS() { + // 拷贝styles + async function copyStyles() { + await copy( + resolve(__dirname, '../src/styles'), + resolve(__dirname, '../dist/styles') + ) + + const content = [ + `@import './styles/theme-default.scss';`, + `@import './styles/variables.scss';`, + `@import './styles/mixins/index.scss';`, + `@import './styles/animation/index.scss';`, + ] + const projectID = process.env.VITE_APP_PROJECT_ID + if (projectID) { + content[1] = `@import '../variables-${projectID}.scss';` + } + const scssFiles = await glob(['dist/es/packages/**/*.scss']) + scssFiles.forEach((file) => { + content.push( + `@import '${relativeFilePath('/dist/style.scss', '/' + file)}';` + ) + }) + dest('dist/style.scss', content.join('\n')) + } + await copyStyles() await vite.build({ logLevel: 'error', resolve: { @@ -221,7 +247,7 @@ async function buildAllCSS() { build: { emptyOutDir: false, lib: { - entry: './dist/styles/themes/default.scss', + entry: './dist/style.scss', formats: ['es'], name: 'style', fileName: 'style', @@ -230,6 +256,29 @@ async function buildAllCSS() { }) } +async function buildThemeCSS() { + await vite.build({ + logLevel: 'error', + resolve: { + alias: [{ find: '@', replacement: resolve(__dirname, '../src') }], + }, + build: { + emptyOutDir: false, + rollupOptions: { + output: [ + { + dir: 'dist/styles/themes', + assetFileNames: 'default.css', + }, + ], + }, + lib: { + entry: './dist/styles/themes/default.scss', + }, + }, + }) +} + // 拷贝styles async function copyStyles() { await copy( @@ -338,39 +387,45 @@ async function buildCSS(p) { } -console.log('clean dist') +console.time('clean dist') await deleteAsync('dist') -console.log('clean: ✅') +console.timeEnd('clean dist') await generate() -console.log('build ES Module') +console.time('build ES Module') await buildES() -console.log('build ES Module: ✅') +console.timeEnd('build ES Module') -console.log('build CommonJS') +console.time('build CommonJS') await buildCJS() -console.log('build CommonJS: ✅') +console.timeEnd('build CommonJS') -console.log('build UMD') +console.time('build UMD') await buildUMD() -console.log('build UMD: ✅') +console.timeEnd('build UMD') -console.log('Build CSS') +console.time('Build CSS') await buildCSS() -console.log('Build CSS: ✅') +console.timeEnd('Build CSS') -console.log('Copy Styles') +console.time('Copy Styles') await copyStyles() -console.log('Copy Styles: ✅') +console.timeEnd('Copy Styles') -console.log('Build All CSS') +console.time('Build All CSS') await buildAllCSS() -console.log('Build All CSS: ✅') +console.timeEnd('Build All CSS') + +console.time('Build Theme CSS') +await buildThemeCSS() +console.timeEnd('Build Theme CSS') -console.log('Build Declaration') +console.time('Build Declaration') await buildDeclaration() -console.log('Build Declaration: ✅') +console.timeEnd('Build Declaration') + +// await exportProps() await deleteAsync([ 'dist/es/packages/nutui.react.js', @@ -379,4 +434,6 @@ await deleteAsync([ 'dist/es/packages/nutui.react.scss.js', ]) -codeShift('Taro') +console.time('Build JSDoc') +codeShift() +console.timeEnd('Build JSDoc') diff --git a/scripts/build.mjs b/scripts/build.mjs index c5ace9e444..7bb0b41170 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -267,6 +267,7 @@ async function buildCSS(p) { const cssFiles = await glob(['src/packages/**/*.scss'], { ignore: ['src/packages/**/demo.scss'], }) + const variables = await readFile( join(__dirname, '../src/styles/variables.scss') )