JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 20
  • Score
    100M100P100Q39330F
  • License MIT

Base plugin for creating file trees using archy. Requires the base-fs plugin, but can also be used as a gulp plugin.

Package Exports

  • base-fs-tree

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (base-fs-tree) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Usage

var tree = require('base-fs-tree');

gulp plugin example

The following examples will work with base-fs, gulp, verb, assemble, generate, update or any other application that supports vinyl streams.

var tree = require('base-fs-tree');
var gulp = require('gulp');

gulp.task('default', function(cb) {
  return gulp.src('some-files/**/*.*')
    .pipe(tree.create())
    .pipe(gulp.dest('trees'))
});

Get files before they're modified

If you want to create a tree from the original unmodified source file paths, use .capture() first thing in the stream:

var tree = require('base-fs-tree');
var gulp = require('gulp');

gulp.task('default', function(cb) {
  return gulp.src('some-files/**/*.*')
    .pipe(tree.capture()) //<= capture files

    // gulp plugin pipeline
    .pipe(otherPlugins())
    .pipe(gulp.dest('dist')) 

    .pipe(tree.create()) //<= create tree
    .pipe(gulp.dest('trees'))
});

Command line tips

You can conditionally generate trees using a command line flag, like --tree.

var tree = require('base-fs-tree');
var gulp = require('gulp');
var argv = require('yargs-parser')(process.argv.slice(2), {
  default: {tree: false}
});

gulp.task('default', function(cb) {
  return gulp.src('some-files/**/*.*')
    .pipe(tree.create(argv))
    .pipe(gulp.dest('trees'))
});

base plugin example

This can also be used as a non-pipeline plugin with base applications. It works by adding .preWrite middleware and a taskEnd listener, so that anytime taskEnd is emitted, a tree will be automatically generates.

This can be useful when you want to automatically generate trees for all tasks in a generate generator, for example.

var tree = require('base-fs-tree');
var vfs = require('base-fs');
var Base = require('base');
var base = new Base();
base.use(vfs());
base.use(tree());

app.task('default', function(cb) {
  app.src('some-files/**/*.*')
    .pipe(app.dest('trees'))
    .on('end', function() {
      // emit `taskEnd` with the name of the task
      app.emit('taskEnd', 'default');
      cb();
    });
});