@nowa/module-script
TypeScript icon, indicating that this package has built-in type declarations

0.3.2 • Public • Published

nowa-module-script

Module Config

export type SingleScript = string | (() => void | Promise<void>);
export interface IOptions {
  // all default false
  parallel?: boolean;
  noWait?: boolean;
  noRetrigger?: boolean;
}
export type Config = ['script', SingleScript | SingleScript[], IOptions];

Usage

const config1 = ['script', 'echo start'];
const config2 = ['script', ['rm -rf dist', 'mkdir dist']]; // multiple scripts
const config3 = ['script', ['rm -rf dist', 'rm -rf build'], { parallel: true }]; // with options
// no guarantee on script running orders , but less time-consuming probably

// be careful, shell scripts are not cross-platform
// you'd better perform file system operations with @nowa/module-file

const config4 = [
  'script',
  () => {
    // js script
    console.log('done');
  },
];

noWait noRetrigger

consider this workflow

  1. script start: [echo start, <some time-consuming script>]
  2. webpack watch
  3. script end: [echo end]

the first-run output should be something like

  1. 'start'
  2. <running time-consuming script>
  3. <webpack related output>
  4. 'end'

and when you trigger a recompile (change source file), these are append to the output

  1. <webpack recompile output>
  2. 'end'

noWait: true

with noWait option on start script, the first output should be

  1. 'start' + <running time-consuming script> + <webpack output>
  2. 'end'

the next module module-webpack won't wait for the script to finish

noRetrigger: true

with noRetrigger option on end script the recompile output should be

  1. <webpack recompile output>

no 'end' output since it won't retrigger

/@nowa/module-script/

    Package Sidebar

    Install

    npm i @nowa/module-script

    Weekly Downloads

    1

    Version

    0.3.2

    License

    MIT

    Unpacked Size

    9.52 kB

    Total Files

    6

    Last publish

    Collaborators

    • onbing
    • tommytroylin
    • gbk