package-script

Spawn external process in additional to the package install

package-script

Add a cross OS nodejs call to your package.json script section for spawning an external commands. e.g. install bower or grunt that are global packages as part of your module.

It's obvious that you can use this package for running multiple synchronized commands by configuration.

Note: In some cases, if you can somehow use global packages as a module e.g. require("bower") instead of using it globaly and avoid installing it in your package script it would be a best practice. But sometimes it's inevetable...

Some more information NodeJS Corner blog

Add a script section to your package.json file.
You can set the script to run in any phase according to the package.json docs

 "scripts": {
    "install": "node installer.js"
  }
require('package-script').spawn([
      {
          command: "npm",
          args: ["install", "-g", "grunt-cli"]
      },
      {
          command: "npm",
          args: ["install", "-g", "bower"]
      }

  ]);
require('package-script').install([
        {
            admin:false,
            name: "q"
        }
    ], {callback: function() {
        // callback functionality in here
     });

Note: The install and uninstall methods have a validation process for checking
if the package already installed/uninstalled

  • depth and debug attributes were added to the optional arguments of the install/uninstall methods
  • js.utils dependency upgrade (npm list info, improved)
  • local Object utils removed, using js.utils instead
  • MAC is now supported
  • issue #1 fixed - Checking if packages already exist See install and uninstall methods, also look into js.utils package (NPM)
  • Install and UnInstalled methods were added
  • callback support for the global methods added
  • issue #2 fixed - switching log off
  • Initial configuration added, it can be set via the spawn method or using a separate init method
  • An admin configuration property that enables(default)/disables the admin cli prompt
  • A spawnopt configuration property that is the spawn options
  • init(config)

    • config {Object} The initial configuration
      • log: Switching the logger off/on optional values: [true/false]
  • spawn(config, init, callback)

    • config {Array} List of Objects to launch
      Launches one or more processes according to the given configuration:
      • command {String} The command to run
      • args {Array} List of string arguments
      • spawnopt {Object} The spawn options
      • admin {boolean} The boolean flag for running the command as administrator (Linux support only for now)
    • init {Object} The initial configuration
      • log: Switching the logger off/on optional values: [true/false]
    • callback {Function} The callback functionality
  • install(config, opt)

    • config {Array} List of packages configuration to be installed
      • name {String} The package name
      • spawnopt {Object} The spawn options
      • admin {boolean} The boolean flag for running the command as administrator (Linux support only for now)
    • opt {Object} The optional configuration
      • init {Object} The initial configuration
        • log: Switching the logger off/on optional values: [true/false]
      • debug {Number}
        • 0: set debug to off (default)
        • 1: set debug to on
      • depth {String} The npm tree info dependencies hierarchy depth (see 'npm list' for more info)
      • callback {Function} The callback functionality
  • uninstall(config, opt)

    • config {Array} List of packages configuration to be installed
      • name {String} The package name
      • spawnopt {Object} The spawn options
      • admin {boolean} The boolean flag for running the command as administrator (Linux support only for now)
    • opt {Object} The optional configuration
      • init {Object} The initial configuration
        • log: Switching the logger off/on optional values: [true/false]
      • debug {Number}
        • 0: set debug to off (default)
        • 1: set debug to on
      • depth {String} The npm tree info dependencies hierarchy depth (see 'npm list' for more info)
      • callback {Function} The callback functionality

See child_process.spawn for more information