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...
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]
- config {Object} The initial configuration
-
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
- config {Array} List of Objects to launch
-
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
- init {Object} The initial configuration
- config {Array} List of packages configuration to be installed
-
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
- init {Object} The initial configuration
- config {Array} List of packages configuration to be installed
See child_process.spawn for more information