40 lines
970 B
JavaScript
40 lines
970 B
JavaScript
'use strict';
|
|
|
|
// modules > native
|
|
const p = require('path');
|
|
const fs = require('fs');
|
|
|
|
// modules > 3rd party
|
|
const chalk = require('chalk');
|
|
|
|
// modules > gulp:utilities
|
|
const gulp = require('gulp');
|
|
const through = require('through2');
|
|
const gutil = require('gulp-util');
|
|
|
|
const TASK_NAME = 'static';
|
|
const config = require('../config').static;
|
|
|
|
gulp.task(TASK_NAME, () => {
|
|
let count = 0;
|
|
|
|
return gulp.src(config.src)
|
|
// we use through so that we can skip directories
|
|
// we skip directories because we want to merge file structure
|
|
.pipe(through.obj((file, enc, callback) => {
|
|
fs.stat(file.path, (err, stats) => {
|
|
if (stats.isDirectory())
|
|
file = null;
|
|
|
|
callback(null, file);
|
|
});
|
|
}))
|
|
.pipe(gulp.symlink((file) => {
|
|
count++;
|
|
return p.join(config.dest);
|
|
}))
|
|
.on('end', () => {
|
|
gutil.log(chalk.cyan(TASK_NAME) + ' done symlinking ' + chalk.bold.blue(count) + ' files');
|
|
});
|
|
});
|