@degulabs/build

0.0.1 • Public • Published

Simple Build

Run your build scripts in parallel, showing their output nicely.

To engage with the system, create a build.mjs script that builds the whole project.

The script must also have a default export that describes watching capabilities.

A simple script looks like this:

#!/usr/bin/env node

import path from 'path';
import { fileURLToPath } from 'url';
import { execSync } from 'child_process';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export default {
  // Watch for modifications in this folder to trigger re-build.
  watch: [ __dirname ],
  // custom name for the project
  name: 'foo',
};

// Run build only when executed directly, not imported.
if (import.meta.url === `file://${process.argv[1]}`) build().catch(e => process.exit(1));

// Do your build here.
async function build() {
  console.time('build');
  const command = process.env.FORCE_COLORS ?
    'npx tsc --pretty -p .' :
    'npx tsc -p .'
  ;
  console.log('Running TSC...');
  execSync(command, {
    stdio: 'inherit',
    cwd: __dirname,
  });
  console.timeEnd('build');
}

Readme

Keywords

none

Package Sidebar

Install

npm i @degulabs/build

Weekly Downloads

15

Version

0.0.1

License

MIT

Unpacked Size

117 kB

Total Files

29

Last publish

Collaborators

  • aslushnikov