package-script

Spawn external process in additional to the package install

npm install package-script
2 downloads in the last day
7 downloads in the last week
91 downloads in the last month

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 not only for spawning but if you wish to run multiple synchronized commands by configuration.

Blog

Some more information NodeJS Corner blog

How To

First add a script section to your package.json file (optional)

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"
  }

Then, in your javascript file:

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

  ]);

Or check the install/uninstall methods

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

version 0.0.7

  • 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

version 0.0.5

  • 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

version 0.0.4

  • issue #2 fixed - switching log off
  • Initial configuration added, it can be set via the spawn method or using a separate init method

version 0.0.3

  • An admin configuration property that enables(default)/disables the admin cli prompt
  • A spawnopt configuration property that is the spawn options

Reference

  • 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

npm loves you