@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

Readme

Keywords

none

Package Sidebar

Install

npm i @nowa/module-script

Weekly Downloads

0

Version

0.3.2

License

MIT

Unpacked Size

9.52 kB

Total Files

6

Last publish

Collaborators

  • onbing
  • tommytroylin
  • gbk