Skip to content

Commit

Permalink
fix: 构建全量 css 文件 (#2847)
Browse files Browse the repository at this point in the history
* fix: 构建全量 css 文件

* fix: 构建全量 css 文件
  • Loading branch information
oasis-cloud authored Dec 26, 2024
1 parent b4a99b1 commit 3eea54a
Show file tree
Hide file tree
Showing 2 changed files with 130 additions and 39 deletions.
93 changes: 75 additions & 18 deletions scripts/build-taro.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand All @@ -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',
Expand All @@ -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(
Expand Down Expand Up @@ -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',
Expand All @@ -379,4 +434,6 @@ await deleteAsync([
'dist/es/packages/nutui.react.scss.js',
])

codeShift('Taro')
console.time('Build JSDoc')
codeShift()
console.timeEnd('Build JSDoc')
76 changes: 55 additions & 21 deletions scripts/build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand All @@ -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',
Expand All @@ -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(
Expand Down Expand Up @@ -218,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')
)
Expand Down Expand Up @@ -296,26 +346,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')
Expand Down Expand Up @@ -346,6 +376,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')
Expand Down

0 comments on commit 3eea54a

Please sign in to comment.