Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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()
Comment on lines +218 to +241

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

建议避免重复定义函数 copyStyles

buildAllCSS 函数内部和全局范围内都定义了名为 copyStyles 的函数,这可能导致混淆和意外的行为。建议将 copyStyles 函数移到全局范围,或者在 buildAllCSS 内部使用不同的函数名称。

应用以下差异来修复此问题:

-async function buildAllCSS() {
-  // 拷贝styles
-  async function copyStyles() {
-    // 函数内容
-  }
-  await copyStyles()
-  // 其他代码
-}
+async function buildAllCSS() {
+  await copyStyles()
+  // 其他代码
+}

Also applies to: 281-291

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()
Comment on lines +177 to +201

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

建议避免重复定义函数 copyStyles

buildAllCSS 函数内部和全局范围内都定义了名为 copyStyles 的函数,这可能导致混淆和意外的行为。建议将 copyStyles 函数移到全局范围,或者在 buildAllCSS 内部使用不同的函数名称。

应用以下差异来修复此问题:

-async function buildAllCSS() {
-  // 拷贝styles
-  async function copyStyles() {
-    // 函数内容
-  }
-  await copyStyles()
-  // 其他代码
-}
+async function buildAllCSS() {
+  await copyStyles()
+  // 其他代码
+}

Also applies to: 241-250

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