UNPKG

cube-parameters

Version:

A sophisticated 3D model viewer built with React, TypeScript, and Three.js, featuring advanced visualization tools, measurement capabilities, and lighting controls.

67 lines (55 loc) โ€ข 1.79 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); console.log('๐Ÿ—๏ธ Building 3D Model Viewer package...'); try { // Clean previous builds console.log('๐Ÿงน Cleaning previous builds...'); if (fs.existsSync('dist')) { fs.rmSync('dist', { recursive: true, force: true }); } // Build the library console.log('๐Ÿ“ฆ Building library...'); execSync('npx vite build --config vite.config.lib.ts', { stdio: 'inherit' }); // Generate TypeScript declarations console.log('๐Ÿ“ Generating TypeScript declarations...'); execSync('npx tsc --project tsconfig.lib.json', { stdio: 'inherit' }); // Copy package.json for library console.log('๐Ÿ“‹ Copying package configuration...'); fs.copyFileSync('package-lib.json', 'dist/package.json'); // Copy README console.log('๐Ÿ“– Copying documentation...'); fs.copyFileSync('README-package.md', 'dist/README.md'); // Create npmignore console.log('๐Ÿ“ Creating .npmignore...'); const npmignoreContent = `*.log .DS_Store node_modules/ src/ tsconfig*.json vite.config*.ts *.sh *.js `; fs.writeFileSync('dist/.npmignore', npmignoreContent); console.log('โœ… Package build complete!'); console.log('๐Ÿ“ Output directory: ./dist'); console.log('๐Ÿš€ Ready for publishing!'); // Show package size try { const stats = fs.statSync('dist'); console.log('๐Ÿ“Š Package built successfully'); } catch (err) { // Size calculation not critical } console.log(''); console.log('To test locally:'); console.log(' cd dist && npm pack'); console.log(''); console.log('To publish:'); console.log(' cd dist && npm publish'); } catch (error) { console.error('โŒ Build failed:', error.message); process.exit(1); }