diff --git a/.gitignore b/.gitignore index c671151..a9252dc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ node_modules/**/* .vs/**/* +**/.vs src/AntDesign.Components/wwwroot/**/* src/AntDesign.Components/CodeEditor/obj/**/* src/AntDesign.Components/CodeEditor/bin/**/* src/**/dist/* src/**/wwwroot/src/* +dist/**/* +src/AntDesign.Components/bundle/**/* diff --git a/package.json b/package.json index 593af74..99253fc 100644 --- a/package.json +++ b/package.json @@ -5,21 +5,22 @@ "main": "exampleJsInterop.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "generate:themes": "node scripts/generate-themes.js", - "generate:js": "node scripts/generate-js.js", - "generate": "npm run generate:themes && npm run generate:js", - "build-dev:css": "npm run generate:themes && vite build --config vite.config.build.css.ts --mode development", - "build-dev:js": "npm run generate:js && vite build --config vite.config.build.js.ts --mode development", - "build:css": "npm run generate:themes && vite build --config vite.config.build.css.ts --mode production", - "build:js": "npm run generate:js && vite build --config vite.config.build.js.ts --mode production", - "build-dev": "npm run build-dev:js && npm run build-dev:css", - "build": "npm run generate && vite build --config vite.config.build.ts --mode production -- --theme=defaultt", + + "generate:bundle:css": "node scripts/bundle-copy-css.js", + "generate:bundle:js": "node scripts/bundle-copy-js.js", + "generate:bundle": "npm run generate:bundle:css && npm run generate:bundle:js", + "build:css": "npm run generate:bundle:css && vite build --config vite.config.build.css.ts --mode development", + "build:js": "npm run generate:bundle:js && vite build --config vite.config.build.js.ts --mode development", + "build-prod:css": "npm run generate:bundle:css && vite build --config vite.config.build.css.ts --mode production", + "build-prod:js": "npm run generate:bundle:js && vite build --config vite.config.build.js.ts --mode production", + "build": "npm run build:js && npm run build:css", + "build-prod": "npm run generate:bundle && vite build --config vite.config.build.ts --mode production", - "generate:proj:css": "node scripts/copy-component-css.js", - "generate:proj:js": "node scripts/copy-component-js.js", + "generate:proj:css": "node scripts/component-copy-css.js", + "generate:proj:js": "node scripts/component-copy-js.js", "generate:proj": "npm run generate:proj:css && npm run generate:proj:js", - "build-proj:css": "npm run generate:proj:css && node scripts/build-component-css.js --mode development", - "build-proj:js": "npm run generate:proj:js && node scripts/build-component-js.js --mode development", + "build-proj:css": "npm run generate:proj:css && node scripts/component-build-css.js --mode development", + "build-proj:js": "npm run generate:proj:js && node scripts/component-build-js.js --mode development", "build-proj": "npm run build-proj:css && npm run build-proj:js" }, "author": "", diff --git a/scripts/bundle-copy-css.js b/scripts/bundle-copy-css.js new file mode 100644 index 0000000..61c4caa --- /dev/null +++ b/scripts/bundle-copy-css.js @@ -0,0 +1,8 @@ +const { getAllComponentsName } = require("./common") +const { bundleCopyScss } = require('./component-copy-base') + + +getAllComponentsName().forEach(function (componentName, index) { + console.log("bundle copy scss", componentName); + bundleCopyScss(componentName, theme="default") +}) diff --git a/scripts/bundle-copy-js.js b/scripts/bundle-copy-js.js new file mode 100644 index 0000000..8db7a45 --- /dev/null +++ b/scripts/bundle-copy-js.js @@ -0,0 +1,8 @@ +const { getAllComponentsName } = require("./common") +const { bundleCopyTs } = require('./component-copy-base') + + +getAllComponentsName().forEach(function (componentName, index) { + console.log("bundle copy ts", componentName); + bundleCopyTs(componentName) +}) diff --git a/scripts/common.js b/scripts/common.js index 6554094..81cc949 100644 --- a/scripts/common.js +++ b/scripts/common.js @@ -2,25 +2,34 @@ const path = require('path') const fs = require('fs') +const config = require('../package.json') const projRootDirName = "AntDesign.Components" const projRootDir = `src/${projRootDirName}`; -const ignoreDir = [ "_scripts", "_styles", "wwwroot"] +const ignoreDir = ["_scripts", "_styles", "wwwroot", "bundle"] -const getAllComponentsName = ()=>{ +const getAllComponentsName = () => { const files = fs.readdirSync(projRootDir); - return files.filter(componentName =>{ + return files.filter(componentName => { let componentDir = path.join(projRootDir, componentName); if (!fs.statSync(componentDir).isDirectory()) { return false } - if(!componentName || ignoreDir.indexOf(componentName) > -1){ + if (!componentName || ignoreDir.indexOf(componentName) > -1) { return false } return true }) } -console.log("getAllComponentsName", getAllComponentsName()); +// console.log("getAllComponentsName", getAllComponentsName()); -module.exports = { getAllComponentsName, projRootDirName, projRootDir } +const org = "ant-design-blazor" +const banner = `/*! +* ${config.name} v${config.version} ${new Date()} +* (c) 2023 @${org} +* Released under the MIT License. +*/`; + + +module.exports = { getAllComponentsName, projRootDirName, projRootDir, banner } diff --git a/scripts/build-component-base.js b/scripts/component-build-base.js similarity index 68% rename from scripts/build-component-base.js rename to scripts/component-build-base.js index eece473..aa5914f 100644 --- a/scripts/build-component-base.js +++ b/scripts/component-build-base.js @@ -1,21 +1,10 @@ // build.js -// import { build } from 'vite'; -const {build} = require('vite') const path = require('path') -const fs = require('fs') const atImport = require('postcss-import') -const config = require('../package.json') -const { getAllComponentsName, projRootDir } = require("./common") +const { getAllComponentsName, projRootDir, banner } = require("./common") -const libName = "ant-design-blazor" - -const banner = `/*! -* ${config.name} v${config.version} ${new Date()} -* (c) 2023 @${libName} -* Released under the MIT License. -*/`; // gene component info const getAllComponentsEntryFiles = (entryFileName)=>{ @@ -37,19 +26,16 @@ const getAllComponentsEntryFiles = (entryFileName)=>{ const createScssConfig = (libItem) => { return { configFile: false, - resolve: { - alias: [{ find: '@', replacement: path.resolve(__dirname, `./${projRootDir}/wwwroot/src/scss`) }], - }, css: { - preprocessorOptions: { - // scss: { - // charset: false, - // additionalData: `@import "@/variables.scss";`, - // }, - postcss: { - plugins: [atImport({ path: path.join(__dirname, 'src`') })], - }, + preprocessorOptions: { + scss: { + charset: false, + additionalData: `@import "./styles/variables.scss";`, + }, + postcss: { + plugins: [atImport({ path: path.join(__dirname, "src`") })], }, + }, }, plugins: [], build: { @@ -80,9 +66,6 @@ const createScssConfig = (libItem) => { const createTsConfig = libItem => { return { configFile: false, - resolve: { - alias: [{ find: '@', replacement: path.resolve(__dirname, `./${projRootDir}/wwwroot/src/ts`) }], - }, plugins: [], build: { emptyOutDir: false, diff --git a/scripts/build-component-css.js b/scripts/component-build-css.js similarity index 83% rename from scripts/build-component-css.js rename to scripts/component-build-css.js index c7c27ab..13b8373 100644 --- a/scripts/build-component-css.js +++ b/scripts/component-build-css.js @@ -1,6 +1,6 @@ // import { build } from 'vite'; const {build} = require('vite') -const {getAllComponentsEntryFiles, createScssConfig} = require('./build-component-base') +const {getAllComponentsEntryFiles, createScssConfig} = require('./component-build-base') const allEntryFiles = getAllComponentsEntryFiles("default.scss") @@ -9,5 +9,6 @@ const allEntryFiles = getAllComponentsEntryFiles("default.scss") allEntryFiles.forEach(async (libItem) => { console.log("build ", libItem.entry); const viteConfig = createScssConfig(libItem); + console.log("build viteConfig", viteConfig); await build(viteConfig); }); diff --git a/scripts/build-component-js.js b/scripts/component-build-js.js similarity index 94% rename from scripts/build-component-js.js rename to scripts/component-build-js.js index 5657ff8..cf40841 100644 --- a/scripts/build-component-js.js +++ b/scripts/component-build-js.js @@ -1,6 +1,6 @@ // import { build } from 'vite'; const {build} = require('vite') -const {getAllComponentsEntryFiles, createTsConfig} = require('./build-component-base') +const {getAllComponentsEntryFiles, createTsConfig} = require('./component-build-base') const allEntryFiles = getAllComponentsEntryFiles("index.ts") diff --git a/scripts/copy-component-base.js b/scripts/component-copy-base.js similarity index 55% rename from scripts/copy-component-base.js rename to scripts/component-copy-base.js index 1b0352e..bab517f 100644 --- a/scripts/copy-component-base.js +++ b/scripts/component-copy-base.js @@ -2,28 +2,39 @@ const path = require('path') const fs = require('fs-extra') const glob = require('glob') -const { getAllComponentsName, projRootDir } = require("./common") +const { getAllComponentsName, projRootDir } = require("./common") - -const copyOneComponentTs = (componentName) =>{ - copyOneComponent(componentName, "_scripts", "ts"); +const bundleCopyTs = (componentName) => { + const outputBaseDir = path.join(projRootDir, "bundle/src"); + copyOneComponent(componentName, "_scripts", outputBaseDir, "ts"); } -const copyOneComponentScss = (componentName, theme="default") =>{ - copyOneComponent(componentName, "_styles", "scss"); +const bundleCopyScss = (componentName, theme = "default") => { + const outputBaseDir = path.join(projRootDir, "bundle/src"); + copyOneComponent(componentName, "_styles", outputBaseDir, "scss", theme); } -const copyOneComponent = (componentName, commonDir, type, theme="default")=> { - const tasks = []; +const componentCopyTs = (componentName) => { + const componentDir = path.join(projRootDir, componentName); + const outputBaseDir = `${componentDir}/wwwroot/src`; + copyOneComponent(componentName, "_scripts", outputBaseDir, "ts"); +} +const componentCopyScss = (componentName, theme = "default") => { const componentDir = path.join(projRootDir, componentName); const outputBaseDir = `${componentDir}/wwwroot/src`; + copyOneComponent(componentName, "_styles", outputBaseDir, "scss", theme); +} + +const copyOneComponent = (componentName, commonDir, outputBaseDir, type, theme = "default") => { + const tasks = []; + // index.ts or default.scss file content - let tsFileStr = `import AntDesign from "./ts/main";\nimport * as common from "./ts/common";\n\n` let tsInterop = "AntDesign.common = common;\n"; - let scssFileStr = `@import './scss/theme-default.scss';\n@import './scss/variables.scss';\n\n` + let tsFileStr = `import AntDesign from "./scripts/main";\nimport * as common from "./scripts/common";\n\n` + let scssFileStr = `@import './styles/theme-default.scss';\n@import './styles/variables.scss';\n\n` // copy common scss and ts copyCommonToComponentWwwroot(tasks, outputBaseDir, commonDir, type) @@ -31,18 +42,18 @@ const copyOneComponent = (componentName, commonDir, type, theme="default")=> { // copy all component scss and ts copyToComponentWwwroot(tasks, outputBaseDir, componentName, type) - if(type == "ts"){ + if (type == "ts") { tsFileStr += `import * as ${componentName} from './ts/${componentName}';\n`; tsInterop += `AntDesign.interop.${componentName} = ${componentName};\n`; - }else if(type == "scss"){ + } else if (type == "scss") { scssFileStr += `@import './scss/${componentName}/index.scss';\n` } // write index.ts or default scss - if(type == "ts"){ - createIndexFile(tasks, outputBaseDir, tsFileStr += `\n\n` + tsInterop, "index.ts") - }else if(type == "scss"){ - createIndexFile(tasks, outputBaseDir, scssFileStr, "default.scss") + if (type == "ts") { + createIndexFile(tasks, outputBaseDir, tsFileStr += `\n\n` + tsInterop, "index.ts") + } else if (type == "scss") { + createIndexFile(tasks, outputBaseDir, scssFileStr, "default.scss") } } @@ -53,7 +64,7 @@ function copyToComponentWwwroot(tasks, outputBaseDir, componentName, type) { fs.ensureDirSync(componentDirAbs) // output dir - const outputDir = `${outputBaseDir}/${type}/${componentName}` + const outputDir = `${outputBaseDir}/${type}/${componentName}` const outputDirAbs = path.resolve(__dirname, `../${outputDir}`); fs.ensureDirSync(outputDirAbs) @@ -62,7 +73,7 @@ function copyToComponentWwwroot(tasks, outputBaseDir, componentName, type) { componentFiles.map((cs) => { // cs: code source, example: ${projRootDir}\{ComponentName}\index.ts // __dirname: /repo/scripts - if(cs.indexOf("wwwroot") > -1){ + if (cs.indexOf("wwwroot") > -1) { return } const srcFile = path.resolve(__dirname, `../${cs}`); @@ -75,9 +86,9 @@ function copyToComponentWwwroot(tasks, outputBaseDir, componentName, type) { srcFile, targetFile ) - .catch((error) => { - console.log(error); - }) + .catch((error) => { + console.log(error); + }) ) if (!fileName.endsWith("index.ts") || !fileName.endsWith("index.scss")) { @@ -88,17 +99,25 @@ function copyToComponentWwwroot(tasks, outputBaseDir, componentName, type) { function copyCommonToComponentWwwroot(tasks, outputDir, dirName, type) { + let commonDir = ""; + if (type.toLowerCase() == "ts") { + commonDir = "scripts" + } else if (type.toLowerCase() == "scss") { + commonDir = "styles" + } else { + return + } // 将 _scripts 文件夹下的文件拷贝到 src const commonScriptDir = path.resolve(__dirname, `../${projRootDir}/${dirName}`); if (fs.existsSync(commonScriptDir)) { tasks.push( fs.copy( commonScriptDir, - path.resolve(__dirname, `../${outputDir}/${type}`) + path.resolve(__dirname, `../${outputDir}/${commonDir}`) ) - .catch((error) => { - console.log(error); - }) + .catch((error) => { + console.log(error); + }) ) } } @@ -118,4 +137,10 @@ function createIndexFile(tasks, outputDir, fileContent, fileNameWithExt) { -module.exports = { copyOneComponentTs, copyOneComponentScss, copyOneComponent } +module.exports = { + bundleCopyTs, + bundleCopyScss, + componentCopyTs, + componentCopyScss, + copyOneComponent +} diff --git a/scripts/copy-component-css.js b/scripts/component-copy-css.js similarity index 58% rename from scripts/copy-component-css.js rename to scripts/component-copy-css.js index f0a383d..951d3d9 100644 --- a/scripts/copy-component-css.js +++ b/scripts/component-copy-css.js @@ -1,8 +1,8 @@ const { getAllComponentsName } = require("./common") -const {copyOneComponentScss} = require('./copy-component-base') +const {componentCopyScss} = require('./component-copy-base') getAllComponentsName().forEach(function (componentName, index) { console.log("copy scss", componentName); - copyOneComponentScss(componentName, theme="default") + componentCopyScss(componentName, theme="default") }) diff --git a/scripts/copy-component-js.js b/scripts/component-copy-js.js similarity index 62% rename from scripts/copy-component-js.js rename to scripts/component-copy-js.js index 0c0210a..1e22e22 100644 --- a/scripts/copy-component-js.js +++ b/scripts/component-copy-js.js @@ -1,7 +1,7 @@ const { getAllComponentsName } = require("./common") -const {copyOneComponentTs} = require('./copy-component-base') +const {componentCopyTs} = require('./component-copy-base') getAllComponentsName().forEach(function (componentName, index) { console.log("copy scss", componentName); - copyOneComponentTs(componentName) + componentCopyTs(componentName) }) diff --git a/scripts/generate-all-js.js b/scripts/generate-all-js.js deleted file mode 100644 index ea2eaae..0000000 --- a/scripts/generate-all-js.js +++ /dev/null @@ -1,71 +0,0 @@ -const path = require('path') -const fs = require('fs-extra') -const glob = require('glob') - -const projDirName = "AntDesign.Components" - -const componentsJs = glob.globSync(`./src/${projDirName}/**/*.ts`) -const outputDir = `./src/${projDirName}/wwwroot/src/ts` - -let tasks = [] -let fileStr = `import AntDesign from "./main";\nimport * as common from "./common";\n\n` -let interop = "AntDesign.common = common;\n"; - -fs.ensureDirSync(outputDir) - -componentsJs.map((cs) => { - cs = cs.replaceAll('\\', '/') - // common - if (cs.indexOf(`src/${projDirName}/_scripts`) > -1 || cs.indexOf("wwwroot") > -1) { - return - } - - // cs: code source, example: src\${projDirName}\Button\index.ts - const tempFilePath = `${cs.replace(`src/${projDirName}/`, 'components/')}`; - const srcFile = path.resolve(__dirname, `../${cs}`); - // copy file path: src\${projDirName}\Button\index.ts --> src\${projDirName}\wwwroot/src\components\Button\index.ts - const targetFile = path.resolve(__dirname, `../${outputDir}`, tempFilePath); - tasks.push( - fs - .copy( - srcFile, - targetFile - ) - .catch((error) => { }) - ) - - console.log(tempFilePath); - if (!tempFilePath.endsWith("index.ts")) { - return; - } - - let pathInfo = tempFilePath.split('/'); - let componentName = pathInfo[pathInfo.length - 2]; - fileStr += `import * as ${componentName} from './${tempFilePath.replace(".ts", "")}';\n`; - interop += `AntDesign.interop.${componentName} = ${componentName};\n`; -}) - - -// 将 _scripts 文件夹下的文件拷贝到temp目录下 -const commonScriptDir = `../src/${projDirName}/_scripts`; -if(fs.existsSync(commonScriptDir.substring(1))){ - tasks.push( - fs.copy( - path.resolve(__dirname, commonScriptDir), - path.resolve(__dirname, `../${outputDir}`) - ) - ) -} - - -fileStr += `\n\n` + interop; -Promise.all(tasks).then((res) => { - fs.outputFile( - path.resolve(__dirname, `../${outputDir}/index.ts`), - fileStr, - 'utf8', - (error) => { - // logger.success(`文件写入成功`); - } - ) -}) diff --git a/scripts/generate-all-themes.js b/scripts/generate-all-themes.js deleted file mode 100644 index 62e23d1..0000000 --- a/scripts/generate-all-themes.js +++ /dev/null @@ -1,59 +0,0 @@ -const path = require('path') -const fs = require('fs-extra') -const glob = require('glob') - -const projDirName = "AntDesign.Components" -const componentsScss = glob.globSync(`./src/${projDirName}/**/*.scss`) -const outputDir = `./src/${projDirName}/wwwroot/src/scss` - -let tasks = [] - - -let fileStr = `@import '../theme-default.scss';\n@import '../variables.scss';\n\n` - -componentsScss.map((cs) => { - cs = cs.replaceAll('\\', '/') - if (cs.indexOf(`src/${projDirName}/_styles`) > -1 || cs.indexOf("wwwroot") > -1) { - return - } - - // cs: code source, example: src\${projDirName}\Button\index.scss - const tempFilePath = `${cs.replace(`src/${projDirName}/`, 'components/')}`; - const srcFile = path.resolve(__dirname, `../${cs}`); - const targetFile = path.resolve(__dirname, `../${outputDir}`, tempFilePath); - - // console.log(`${cs}, ${srcFile} --> ${targetFile}`); - tasks.push( - fs - .copy( - srcFile, - targetFile - ) - .catch((error) => {}) - ) - - fileStr += `@import '../../${tempFilePath}';\n` -}) - -// 将 _scripts 文件夹下的文件拷贝到temp目录下 -const commonScriptDir = `../src/${projDirName}/_styles`; -if(fs.existsSync(commonScriptDir.substring(1))){ - tasks.push( - fs.copy( - path.resolve(__dirname, commonScriptDir), - path.resolve(__dirname, `../${outputDir}/styles`) - ) - ) -} - - -Promise.all(tasks).then((res) => { - fs.outputFile( - path.resolve(__dirname, `../${outputDir}/styles/themes/default.scss`), - fileStr, - 'utf8', - (error) => { - // logger.success(`文件写入成功`); - } - ) -}) \ No newline at end of file diff --git a/vite.config.build.css.ts b/vite.config.build.css.ts index 66224ba..4046e50 100644 --- a/vite.config.build.css.ts +++ b/vite.config.build.css.ts @@ -1,55 +1,45 @@ -import { defineConfig } from 'vite' +import { defineConfig } from "vite"; -const path = require('path') -const atImport = require('postcss-import') -const config = require('./package.json') +const path = require("path"); +const atImport = require("postcss-import"); +const { banner, projRootDir } = require("./scripts/common"); -const projDirName = "AntDesign.Components" -const libName = "ant-design-blazor" - -const banner = `/*! -* ${config.name} v${config.version} ${new Date()} -* (c) 2023 @${libName} -* Released under the MIT License. -*/`; - -const { resolve } = path // https://vitejs.dev/config/ export default defineConfig({ - resolve: { - alias: [{ find: '@', replacement: resolve(__dirname, `./src/${projDirName}/wwwroot/src/scss`) }], - }, - css: { - preprocessorOptions: { - scss: { - charset: false, - additionalData: `@import "@/variables.scss";`, - }, - postcss: { - plugins: [atImport({ path: path.join(__dirname, 'src`') })], - }, - }, + resolve: { + alias: [ + { + find: "@", + replacement: path.resolve( + __dirname, + `./${projRootDir}/bundle/src` + ), + }, + ], + }, + css: { + preprocessorOptions: { + scss: { + charset: false, + additionalData: `@import "@/styles/variables.scss";`, + }, + postcss: { + plugins: [atImport({ path: path.join(__dirname, "src`") })], + }, }, - plugins: [], - build: { - emptyOutDir: false, - outDir: `./src/${projDirName}/wwwroot/dist`, - rollupOptions: { - output: { - banner, - assetFileNames: (fileInfo) => { - // if (fileInfo.name == 'style.css'){ - // return 'index.min.css'; - // } - return `[name].[ext]` - }, - }, - }, - lib: { - entry: `./src/${projDirName}/wwwroot/src/default.scss`, - formats: ['es'], - name: 'index', - fileName: 'index', - }, + }, + plugins: [], + build: { + emptyOutDir: false, + outDir: `./dist`, + rollupOptions: { + input: `./${projRootDir}/bundle/src/default.scss`, + output: { + banner, + assetFileNames: `[name].[ext]`, + entryFileNames: "[name].js", + chunkFileNames: "[name]-[hash].js", + }, }, -}) \ No newline at end of file + }, +}); diff --git a/vite.config.build.js.ts b/vite.config.build.js.ts index e8d8909..9860201 100644 --- a/vite.config.build.js.ts +++ b/vite.config.build.js.ts @@ -1,46 +1,38 @@ import { defineConfig } from "vite"; const path = require("path"); -const config = require("./package.json"); - -const projDirName = "AntDesign.Components" -const libName = "ant-design-blazor" - -const banner = `/*! -* ${config.name} v${config.version} ${new Date()} -* (c) 2023 @${libName} -* Released under the MIT License. -*/`; +const { banner, projRootDirName, projRootDir } = require("./scripts/common") // https://vitejs.dev/config/ export default defineConfig(({ command, mode }) => { var isProd = mode === 'production'; - + console.log("process.env", process.env); return { resolve: { - alias: [{ find: "@", replacement: path.resolve(__dirname, "./src") }], + alias: [ + { + find: "@", + replacement: path.resolve( + __dirname, + `./${projRootDir}/bundle/src` + ), + }, + ], }, build: { minify: isProd, sourcemap: !isProd, emptyOutDir: false, - outDir: `./src/${projDirName}/wwwroot/dist`, + outDir: `./dist`, rollupOptions: { + input: `./${projRootDir}/bundle/src/index.ts`, output: { banner, - // 入口文件 input 配置所指向的文件包名 默认值:"[name].js" - entryFileNames: (fileInfo) => { - console.log("entryFileNames", fileInfo.facadeModuleId); - return "[name].min.js"; - }, + assetFileNames: `[name].[ext]`, + entryFileNames: "[name].js", + chunkFileNames: "[name]-[hash].js", }, }, - lib: { - entry: `./src/${projDirName}/wwwroot/src/ts/index.ts`, - name: libName, - fileName: libName, - formats: ["es"], - }, }, } } diff --git a/vite.config.build.ts b/vite.config.build.ts index 1d32d80..598a595 100644 --- a/vite.config.build.ts +++ b/vite.config.build.ts @@ -2,26 +2,23 @@ import { defineConfig } from "vite"; const path = require("path"); const atImport = require("postcss-import"); -const config = require("./package.json"); +const { banner, projRootDirName, projRootDir } = require("./scripts/common") -const projDirName = "AntDesign.Components" -const libName = "ant-design-blazor" -const banner = `/*! -* ${config.name} v${config.version} ${new Date()} -* (c) 2023 @${libName} -* Released under the MIT License. -*/`; - -const { resolve } = path; // https://vitejs.dev/config/ -export default defineConfig(({ command, mode }) => { +export default defineConfig(({ mode }) => { var isProd = mode === "production"; console.log("isProd", isProd) return { resolve: { alias: [ - { find: "@", replacement: resolve(__dirname, `./src/${projDirName}/wwwroot/src/scss`) }, + { + find: "@", + replacement: path.resolve( + __dirname, + `./${projRootDir}/bundle/src` + ), + }, ], }, esbuild: { @@ -43,34 +40,20 @@ export default defineConfig(({ command, mode }) => { sourcemap: !isProd, emptyOutDir: true, minify: true, - outDir: `./src/${projDirName}/wwwroot/dist`, + outDir: `./dist`, rollupOptions: { + input: { + entry:{ + index: `./${projRootDir}/bundle/src/index.ts`, + default:`./${projRootDir}/bundle/src/default.scss`, + } + }, output: { banner, - assetFileNames: (fileInfo) => { - // console.log("fileInfo", fileInfo); - // if (fileInfo.name == "style.css") { - // return "index.min.css"; - // } - return `[name].[ext]`; - }, - // 入口文件 input 配置所指向的文件包名 默认值:"[name].js" - entryFileNames: (fileInfo) => { - console.log("entryFileNames", fileInfo.facadeModuleId); - - return "[name].min.js"; - }, - }, - }, - lib: { - entry: { - index: `./src/${projDirName}/wwwroot/src/ts/index.ts`, - default: - `./src/${projDirName}/wwwroot/src/scss/styles/themes/default.scss`, + assetFileNames: `[name].[ext]`, + entryFileNames: "[name].js", + chunkFileNames: "[name]-[hash].js", }, - name: libName, - fileName: libName, - formats: ["es"], }, }, };