Skip to content

Copy minified (dist) files of modules listed in package.json "dependencies" field to your build path

Notifications You must be signed in to change notification settings

dshemendiuk/gulp-npm-dist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

gulp-npm-dist

Gulp plugin for listing package.json dependencies and copying their dist files to a specific folder

Get started

Install

npm install gulp-npm-dist --save-dev

Usage

//package.json example
{
  "name": "app",
  "version": "1.0.0",
  "dependencies": {
    "bootstrap": "^3.3.7",
    "bootstrap-3-typeahead": "^4.0.2",
    "bootstrap-select": "^1.12.1",
    "jquery": "^3.1.1",
    "jquery-lazyload": "^1.9.7",
    "shufflejs": "^4.0.2"
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-rename": "^1.2.2",
    "gulp-less": "^3.1.0",
    "gulp-npm-dist": "^0.1.2",
    "pump": "^1.0.1"
  }
}
var gulp = require('gulp');
var npmDist = require('gulp-npm-dist');

// Copy dependencies to ./public/libs/
gulp.task('copy:libs', function() {
  gulp.src(npmDist(), {base:'./node_modules'})
    .pipe(gulp.dest('./public/libs'));
});

Usage with gulp-rename

var gulp = require('gulp');
var npmDist = require('gulp-npm-dist');
var rename = require('gulp-rename');

gulp.task('copy:libs', function() {
    gulp.src(npmDist(), {base:'./node_modules/'})
        .pipe(rename(function(path) {
            path.dirname = path.dirname.replace(/\/dist/, '').replace(/\\dist/, '');
        }))
        .pipe(gulp.dest('./public/libs'));
});

will create this structure:

gulp-npm-dist build structure

Options

copyUnminified

Type: boolean

Default: false

excludes

Type: array

Default:

[
  '*.map',
  'src/**/*',
  'examples/**/*',
  'example/**/*',
  'demo/**/*',
  'spec/**/*',
  'docs/**/*',
  'tests/**/*',
  'test/**/*',
  'Gruntfile.js',
  'gulpfile.js',
  'package.json',
  'package-lock.json',
  'bower.json',
  'composer.json',
  'yarn.lock',
  'webpack.config.js',
  'README',
  'LICENSE',
  'CHANGELOG',
  '*.yml',
  '*.md',
  '*.coffee',
  '*.ts',
  '*.scss',
  '*.less'
]

replaceDefaultExcludes

Type: boolean

Default: false (append your excludes to the default set)

Usage with options

gulp.task('copy:libs', function () {
    gulp.src(npmDist({ 
        copyUnminified: true, 
        excludes: ['/**/*.txt'] 
    }), { base: './node_modules' })
        .pipe(gulp.dest('./public/libs'));
});

nodeModulesPath

Type: string

Default: ./ (relative to gulpfile.js)

packageJsonPath

Type: string

Default: ./ (relative to gulpfile.js)

Usage with alternative paths

Assume the following locations:

  • ./node_modules/
  • ./foo/gulpfile.js
  • ./foo/bar/package.json
gulp.task('copy:libs', function () {
    gulp.src(npmDist({ 
        nodeModulesPath: '../',
        packageJsonPath: 'bar/'
    }), { base: '../node_modules' })
        .pipe(gulp.dest('./public/libs'));
});

About

Copy minified (dist) files of modules listed in package.json "dependencies" field to your build path

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published