@nowa/module-script
v0.3.2
Published
the nowa script module
Downloads
7
Readme
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
- script
start
: [echo start
,<some time-consuming script>
] - webpack watch
- script
end
: [echo end
]
the first-run output should be something like
- 'start'
<running time-consuming script>
<webpack related output>
- 'end'
and when you trigger a recompile (change source file), these are append to the output
<webpack recompile output>
- 'end'
noWait: true
with noWait
option on start
script, the first output should be
- 'start' +
<running time-consuming script>
+<webpack output>
- '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
<webpack recompile output>
no 'end' output since it won't retrigger