typhonjs-npm-scripts-runner

    0.4.0 • Public • Published

    typhonjs-npm-scripts-runner

    NPM Code Style License Gitter

    Build Status Dependency Status

    Provides an NPM module and script which will load a JSON file searching for an Array entry then executes commands by child_process->execSync.

    For a comprehensive ES6 build / testing / publishing NPM module please see typhonjs-npm-build-test as it combines this module along with transpiling ES6 sources with Babel, pre-publish script detection, ESDoc dependencies, testing with Mocha / Istanbul and an Istanbul instrumentation hook for JSPM / SystemJS tests. For a full listing of all TyphonJS NPM script modules available please see typhonjs-node-npm-scripts organization on GitHub.


    To configure the script runner provide this entry in package.json scripts entry:

      "devDependencies": {
        "typhonjs-npm-scripts-runner": "^0.3.0"
      },
      "scripts": {
        "runme": "node ./node_modules/typhonjs-npm-scripts-runner/scripts/runner.js <file path> <script entry>",
      },
    

    <file path> must be defined relative to the root path and contain a JSON formatted object hash with entries that end with an Array of strings. To invoke the above example execute npm run runme.

    For example here is a JSON formatted file .scriptdata located in the root path with muliple entries. The first copy.files.scripts copies files the second run.npm runs three other NPM scripts defined in package.json:

    /**
     * You can provide comments in script runner data files.
     */
    {
       "copy":
       {
          "files":
          {
             "scripts":
             [
                "cp ./templates/file2.js ./destination/file2.js",
                "cp ./templates/file2.js ./destination/file3.js"
             ]
          }
       },
       
       "run":
       {
          "scripts": ["npm run script1", "npm run script2", "npm run script3"]
       }
    }
    

    Given the above data file here are the entries in package.json to run them:

      "scripts": {
        "copy": "node ./node_modules/typhonjs-npm-scripts-runner/scripts/runner.js .scriptdata copy.files.scripts '<optional custom message>'",
        "runmult": "node ./node_modules/typhonjs-npm-scripts-runner/scripts/runner.js .scriptdata run.scripts '<optional custom message>'"
      },
    

    For programmatic usage see the following example; you may include a 3rd string parameter for a custom message:

    var runner = require('typhonjs-npm-scripts-runner');
    
    runner.run('.scriptdata', 'copy.files.scripts', '<optional custom message>');
    

    Please note that you can add comments to the script JSON data file.

    Install

    npm i typhonjs-npm-scripts-runner

    DownloadsWeekly Downloads

    3

    Version

    0.4.0

    License

    MPL-2.0

    Last publish

    Collaborators

    • avatar