build status: failing
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { execSync } from 'child_process'
|
||||
import { join } from 'path'
|
||||
import { fileURLToPath } from 'url'
|
||||
import { unlink } from 'fs/promises'
|
||||
|
||||
// Get the project root directory
|
||||
const __dirname = fileURLToPath(new URL('.', import.meta.url))
|
||||
const projectRoot = join(__dirname, '..')
|
||||
|
||||
async function buildExternal() {
|
||||
try {
|
||||
// Compile TypeScript using local tsc
|
||||
console.log('Compiling TypeScript...')
|
||||
execSync(
|
||||
'npx tsc main.ts --target es2020 --module esnext --moduleResolution bundler --listEmittedFiles',
|
||||
{
|
||||
stdio: 'inherit',
|
||||
cwd: projectRoot,
|
||||
}
|
||||
)
|
||||
|
||||
// Bundle with esbuild
|
||||
console.log('Bundling with esbuild...')
|
||||
execSync(
|
||||
'npx esbuild main.js --bundle --format=esm --target=esnext --outfile=out.js --minify --legal-comments=none',
|
||||
{
|
||||
stdio: 'inherit',
|
||||
cwd: projectRoot,
|
||||
}
|
||||
)
|
||||
|
||||
// Move output file to public directory
|
||||
console.log('Moving output file to public directory...')
|
||||
execSync('mv ./out.js ./public/out.js', {
|
||||
stdio: 'inherit',
|
||||
cwd: projectRoot,
|
||||
})
|
||||
|
||||
// Clean up temporary files
|
||||
console.log('Cleaning up...')
|
||||
await Promise.all([
|
||||
// Remove lib/*.js files
|
||||
execSync('rm -rf ./lib/**.js', { stdio: 'inherit', cwd: projectRoot }),
|
||||
// Remove main.js
|
||||
unlink(join(projectRoot, 'main.js')).catch(() => {}), // Ignore if file doesn't exist
|
||||
])
|
||||
|
||||
console.log('Build completed successfully!')
|
||||
} catch (error) {
|
||||
console.error('Build failed:', error)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// If script is run directly (not imported)
|
||||
if (import.meta.url === `file://${process.argv[1]}`) {
|
||||
buildExternal()
|
||||
}
|
||||
|
||||
export default buildExternal
|
||||
Reference in New Issue
Block a user