Automatically install npm and bower packages if package.json or bower.json is found in the gulp file stream respectively
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib fix: allow spaces in commands (fixes #39) Mar 23, 2017
test
.editorconfig
.gitattributes Dot files Mar 8, 2014
.gitignore Dot files Mar 8, 2014
.jshintrc
.npmignore Dot files Mar 8, 2014
.travis.yml fix: limit concurrency to 1 per command, also pass args as is (fixes #38 Mar 23, 2017
CHANGELOG.md chore(release): 1.1.0 Mar 23, 2017
LICENSE License and read me Mar 8, 2014
README.md feat: add callback support (closes #17 #31) Mar 23, 2017
index.js
package.json chore(release): 1.1.0 Mar 23, 2017

README.md

gulp-install NPM version Build Status Dependency Status

Automatically install npm, bower, tsd, typings, composer and pip packages/dependencies if the relative configurations are found in the gulp file stream respectively

File Found Command run
package.json npm install
bower.json bower install
tsd.json tsd reinstall --save
typings.json typings install
composer.json composer install
requirements.txt pip install -r requirements.txt

It will run the command in the directory it finds the file, so if you have configs nested in a lower directory than your slushfile.js/gulpfile.js, this will still work.

NOTE since v1.0.0 gulp-install requires at least NodeJS v6.

Primary objective

Used as the install step when using slush as a Yeoman replacement.

Installation

For global use with slush

Install gulp-install as a dependency:

npm install --save gulp-install

For local use with gulp

Install gulp-install as a development dependency:

npm install --save-dev gulp-install

Usage

In your slushfile.js:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install());

In your gulpfile.js:

var install = require("gulp-install");

gulp.src(['./bower.json', './package.json'])
  .pipe(install());

API

inject([options] [, callback])

Param Type Description
options Object Any option
callback Function Called when install is finished (not on failures)

Options

To not trigger the install use --skip-install as CLI parameter when running slush or gulp.

options.<command>

Type: Array|String|Object

Default: null

Use this option(s) to specify any arguments for any command, e.g:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({
    npm: '--production', // Either a single argument as a string
    bower: {allowRoot: true}, // Or arguments as an object (transformed using Dargs: https://www.npmjs.com/package/dargs)
    pip: ['--target', '.'] // Or arguments as an array
  }));

options.commands

Type: Object

Default: null

Use this option to add any command to be run for any file, e.g:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({
    commands: {
      'package.json': 'yarn'
    },
    yarn: ['--extra', '--args', '--here']
  }));

options.production

Type: Boolean

Default: false

Set to true if npm install should be appended with the --production parameter when stream contains package.json.

Example:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({production: true}));  

options.ignoreScripts

Type: Boolean

Default: false

Set to true if npm install should be appended with the --ignore-scripts parameter when stream contains package.json. Useful for skipping postinstall scripts with npm.

Example:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({ignoreScripts: true}));

options.noOptional

Type: Boolean

Default: false

Set to true if npm install should be appended with the --no-optional parameter which will prevent optional dependencies from being installed.

Example:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({noOptional: true}));

options.allowRoot

Type: Boolean

Default: false

Set to true if bower install should be appended with the --allow-root parameter when stream contains bower.json.

Example:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({allowRoot: true}));  

options.args

Type: Array or String

Default: undefined

Specify additional arguments that will be passed to the install command(s).

Example:

var install = require("gulp-install");

gulp.src(__dirname + '/templates/**')
  .pipe(gulp.dest('./'))
  .pipe(install({
      args: ['dev', '--no-shrinkwrap' ]} // npm install --dev --no-shrinkwrap
    ));  

License

MIT License