{"_id":"@dbs-portal/tool-build","name":"@dbs-portal/tool-build","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@dbs-portal/tool-build","version":"1.0.0","description":"Build utilities and configurations for DBS Portal monorepo","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./vite-config":{"import":"./dist/vite-config.js","types":"./dist/vite-config.d.ts"},"./library-config":{"import":"./dist/library-config.js","types":"./dist/library-config.d.ts"}},"scripts":{"build":"tsc && vite build","dev":"tsc --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"biome lint src","format":"biome format src --write","type-check":"tsc --noEmit","clean":"rm -rf dist","migrate-build-config":"node scripts/migrate-package.mjs","verify-build-config":"node scripts/verify-build-config.mjs"},"dependencies":{"@tailwindcss/vite":"^4.0.6","@vitejs/plugin-react":"^4.3.4","esbuild":"^0.24.2","rollup":"^4.24.4","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-visualizer":"^5.12.0","vite":"^6.1.0"},"devDependencies":{"@biomejs/biome":"1.9.4","@types/node":"^22.10.2","typescript":"^5.7.2","vitest":"^3.0.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"keywords":["vite","build","monorepo","dbs-portal"],"author":{"name":"DBS Portal Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/your-org/dbs-portal.git","directory":"packages/tools/build"},"bugs":{"url":"https://github.com/your-org/dbs-portal/issues"},"homepage":"https://github.com/your-org/dbs-portal#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@dbs-portal/tool-build@1.0.0","gitHead":"61a23904a481b624f3e8ed7abb6c944ecfeaca7b","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TD5kqecus+fOPhKJ0RR1ZDIJX89jeeK8OgxATGuSnu8qs2OCKTworghQb+E9Xio5I2ryQZ2Kady/Uc7H2Gi92g==","shasum":"140076fb2322f66bbe97d8a44b8abae1a4cdf814","tarball":"https://registry.npmjs.org/@dbs-portal/tool-build/-/tool-build-1.0.0.tgz","fileCount":11,"unpackedSize":124140,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCF5SkmuBf76nauiUBDba3Wjj0PJtdDZleUVL9A1IXVnwIhAImhNeh2e/qy9UzqyBH11al8lB0dVcXCPyfe/TitVqNO"}]},"_npmUser":{"name":"longvq","email":"vqlong1604@gmail.com"},"directories":{},"maintainers":[{"name":"longvq","email":"vqlong1604@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tool-build_1.0.0_1754218662666_0.5717879487225397"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-03T10:57:42.581Z","1.0.0":"2025-08-03T10:57:42.816Z","modified":"2025-08-03T10:57:43.070Z"},"maintainers":[{"name":"longvq","email":"vqlong1604@gmail.com"}],"description":"Build utilities and configurations for DBS Portal monorepo","homepage":"https://github.com/your-org/dbs-portal#readme","keywords":["vite","build","monorepo","dbs-portal"],"repository":{"type":"git","url":"git+https://github.com/your-org/dbs-portal.git","directory":"packages/tools/build"},"author":{"name":"DBS Portal Team"},"bugs":{"url":"https://github.com/your-org/dbs-portal/issues"},"license":"MIT","readme":"# @dbs-portal/tool-build\n\nBuild utilities and configurations for DBS Portal monorepo packages.\n\n## Features\n\n- 🏗️ **Vite Configuration Factory**: Pre-configured Vite setups for apps and libraries\n- 📦 **Library Build Support**: Optimized configurations for package libraries\n- 📊 **Bundle Analysis**: Tools to analyze and optimize bundle sizes\n- 🎨 **Asset Optimization**: Image, CSS, and JavaScript optimization utilities\n- 🌍 **Environment Management**: Configuration management for different environments\n\n## Installation\n\n```bash\nyarn add @dbs-portal/tool-build\n```\n\n## Usage\n\n### Vite Configuration\n\n```typescript\n// vite.config.ts\nimport { createViteConfig } from '@dbs-portal/tool-build'\n\nexport default createViteConfig({\n  type: 'app',\n  features: ['react', 'tailwind'],\n  optimization: 'production'\n})\n```\n\n### Library Configuration\n\n```typescript\n// vite.config.ts for a library package\nimport { createLibraryConfig } from '@dbs-portal/tool-build/library-config'\n\nexport default createLibraryConfig({\n  name: 'MyLibrary',\n  entry: 'src/index.ts',\n  formats: ['es', 'cjs']\n})\n```\n\n### Bundle Analysis\n\n```typescript\nimport { bundleAnalyzer } from '@dbs-portal/tool-build'\n\nconst analysis = await bundleAnalyzer('./dist')\nconsole.log(analysis.generateReport())\n```\n\n### Asset Optimization\n\n```typescript\nimport { assetOptimizer } from '@dbs-portal/tool-build'\n\nconst optimizer = await assetOptimizer({\n  images: { quality: 80, formats: ['webp', 'jpeg'] },\n  css: { purge: true, minify: true },\n  js: { minify: true, treeshake: true }\n})\n\nawait optimizer.optimizeImages(['./src/assets/*.jpg'])\n```\n\n### Environment Management\n\n```typescript\nimport { envManager } from '@dbs-portal/tool-build'\n\n// Load from environment variables\nenvManager.loadFromEnv()\n\n// Check feature flags\nif (envManager.isFeatureEnabled('NEW_FEATURE')) {\n  // Enable new feature\n}\n\n// Get Vite environment variables\nconst viteEnv = envManager.getViteEnv()\n```\n\n## Presets\n\n### Application Presets\n\n```typescript\nimport { presets } from '@dbs-portal/tool-build/vite-config'\n\n// React application with Tailwind\nexport default presets.reactApp()\n\n// React application with custom options\nexport default presets.reactApp({\n  optimization: 'production',\n  analyze: true\n})\n```\n\n### Library Presets\n\n```typescript\nimport { libraryPresets } from '@dbs-portal/tool-build/library-config'\n\n// Core utility library\nexport default libraryPresets.core('MyUtilLibrary')\n\n// React component library\nexport default libraryPresets.reactComponent('MyComponentLibrary')\n\n// Business module\nexport default libraryPresets.module('MyModule')\n```\n\n## Configuration Options\n\n### ViteConfigOptions\n\n```typescript\ninterface ViteConfigOptions {\n  type: 'app' | 'library'\n  features?: ('react' | 'tailwind' | 'router' | 'query')[]\n  optimization?: 'development' | 'production'\n  analyze?: boolean\n  sourcemap?: boolean\n  minify?: boolean\n  target?: string\n  outDir?: string\n  publicDir?: string\n  base?: string\n}\n```\n\n### LibraryConfigOptions\n\n```typescript\ninterface LibraryConfigOptions {\n  name: string\n  entry: string\n  formats?: ('es' | 'cjs' | 'umd' | 'iife')[]\n  external?: string[]\n  globals?: Record<string, string>\n  fileName?: string | ((format: string) => string)\n  cssCodeSplit?: boolean\n  emptyOutDir?: boolean\n}\n```\n\n## Environment Variables\n\nThe environment manager supports the following variables:\n\n- `NODE_ENV`: Environment mode (development, production, test)\n- `API_BASE_URL`: Base URL for API calls\n- `APP_NAME`: Application name\n- `APP_VERSION`: Application version\n- `FEATURE_*`: Feature flags (e.g., `FEATURE_NEW_UI=true`)\n\n## Bundle Size Limits\n\nDefault bundle size limits:\n- Total bundle: 500KB\n- Gzipped bundle: 100KB\n\nOverride with bundle analysis:\n\n```typescript\nconst { passed, issues } = analyzer.checkSizeRequirements(\n  1024 * 1024, // 1MB total\n  200 * 1024   // 200KB gzipped\n)\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-285927a0e51d4979f76bd9ad929d5c9c"}