@awesome-nodes/build-system

0.3.2 • Public • Published

Awesome Nodes Zero Configuration Build System

Integrated Zero Configuration Build System for Awesome Nodes Apps and Framework Components

Project Goals

Zero Configuration Build

The main target of Build System is to provide out of the box building of TypeScript libraries as:

  • ES5 for NodeJS applications
  • ES6 for tree shaking builds
  • and as UMD bundle for web applications

Command-Let Development

The secondary target of Build System is to provide out of the box command-let development with exit code handling. Command-let development provides a neat way for writing business logic in complex continuous integration scenarios.

Exit Code Handling

Exit code handling ensures intercommunication of execution status between command-lets and execution host.

There is no chance to exit not gracefully when using Command-Let`s written with Build System.

See src/lib/demo.cmdlet.ts and src/lib/demo.ts for a quick demonstration.

Installation

BuildSystem can be installed globally

$ npm run start

or

$ npm install -g @awesome-nodes/build-system

Usage

CLI

Run Builds-System locally

$ node bin/bs -h

Run Builds-System globally installed or as project dependency

$ bs -h

Help Output

Options:
  -V, --version                         output the version number
  -tc, --team-city                      Enable TeamCity compatible logging (default: false)
  -v, --verbose                         Verbose output (default: false)
  -h, --help                            display help for command

Commands:
  bundle-babel [options] [params...]
  bundle-webpack [options] [params...]
  demo [options] [params...]
  npm-install [options] [params...]
  help [command]                        display help for command

Setup

  1. Install Build System within your node library project as development dependency
    $ npm install --save-dev @awesome-nodes/build-system
  2. Add build scripts to your node package configuration
    {
      "scripts": {
        "build": "concurrently \"npm run build:es\" \"npm run build:umd\"",
        "build:es": "bs bundle-babel -a",
        "build:umd": "bs bundle-webpack",
        "build:watch": "cross-env NODE_ENV=development concurrently \"npm run build:es -- -w\" \"npm run build:umd -- -w\""
       }
    }

Build System Node Module

Directory Layout

  • bin - Build System command line binary
  • lib - Build System library
  • src - Build System sources

Node Module Build

Usage of NPM instead of Yarn

Zero configuration requires to be non dependent on any dependency for initial build host provisioning. So we relay on the npm node package manager for any kind of node module specific operations.

Package Sidebar

Install

npm i @awesome-nodes/build-system

Weekly Downloads

1

Version

0.3.2

License

MIT

Unpacked Size

57.9 kB

Total Files

22

Last publish

Collaborators

  • christian.kusmanow
  • markusfaatz