102 lines
No EOL
3.9 KiB
JavaScript
102 lines
No EOL
3.9 KiB
JavaScript
import fse from 'fs-extra';
|
|
import path from 'path';
|
|
import gulp from "gulp";
|
|
import ts from "gulp-typescript";
|
|
//import * as dartSass from 'sass';
|
|
//import gulpSass from 'gulp-sass';
|
|
//import webpack from 'webpack';
|
|
//import webpackStream from 'webpack-stream';
|
|
import { deleteAsync } from 'del';
|
|
|
|
//const sass = gulpSass(dartSass);
|
|
|
|
var tsProject = ts.createProject("tsconfig.json");
|
|
|
|
// Task which would delete the old dist directory if present
|
|
gulp.task("build-clean", function () {
|
|
return deleteAsync(["./dist"]);
|
|
});
|
|
|
|
// Task which would transpile typescript to javascript
|
|
gulp.task("typescript", function () {
|
|
return tsProject.src().pipe(tsProject()).js.pipe(gulp.dest("dist"));
|
|
});
|
|
|
|
/*let webpackConfig = {
|
|
mode: 'development', //(PRODUCTION ? 'production' : 'development'),
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.js$/,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: [ "@babel/preset-env" ],
|
|
compact: false
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}//,
|
|
//devtool: !PRODUCTION && 'source-map'
|
|
}*/
|
|
|
|
// Task which will copy the assets from the static JavaScript directory to the dist directory
|
|
/*gulp.task("compile-foundation-js", function () {
|
|
return gulp.src('./src/static/js/foundation/** /*.js').pipe(webpackStream(webpackConfig, webpack)).pipe(gulp.dest("./dist/static/js/foundation"));
|
|
});*/
|
|
|
|
// Task to compile the sass files to css files
|
|
/*gulp.task("sass", function () {
|
|
let includePaths = [];
|
|
|
|
if(fse.existsSync('node_modules/foundation-sites/scss') && fse.existsSync('node_modules/motion-ui/src')) {
|
|
includePaths = [
|
|
'node_modules/foundation-sites/scss',
|
|
'node_modules/motion-ui/src'
|
|
];
|
|
}
|
|
else if(fse.existsSync('.yarn/cache')) {
|
|
// We're using Yarn PnP, so we need to find the paths to the foundation-sites and motion-ui packages
|
|
const packages = fse.readdirSync('.yarn/cache');
|
|
|
|
const foundationSitesYarnPnPPath = path.join('.yarn/cache', packages.find(p => p.startsWith('foundation-sites-npm-') && p.endsWith('.zip')), 'node_modules/foundation-sites/scss');
|
|
const motionUIYarnPnPPath = path.join('.yarn/cache', packages.find(p => p.startsWith('motion-ui-npm-') && p.endsWith('.zip')), 'node_modules/motion-ui/src');
|
|
|
|
includePaths = [
|
|
foundationSitesYarnPnPPath,
|
|
motionUIYarnPnPPath
|
|
];
|
|
}
|
|
|
|
return gulp.src("./src/static/scss/** /*.scss").pipe(sass({ includePaths: includePaths })).pipe(gulp.dest("./dist/static/css"));
|
|
});*/
|
|
|
|
//gulp.task('pre-compile', gulp.parallel('compile-foundation-js', 'sass'));
|
|
|
|
// Task which would just create a copy of the current views directory in dist directory
|
|
gulp.task("views", function () {
|
|
return gulp.src("./src/pages/**/*.ejs").pipe(gulp.dest("./dist/pages"));
|
|
});
|
|
|
|
// Task which will copy the assets from the static JavaScript directory to the dist directory
|
|
gulp.task("assets-js", function () {
|
|
return gulp.src(['./src/static/js/**/*.js', '!./src/static/js/foundation/**/*.js']).pipe(gulp.dest("./dist/static/js"));
|
|
});
|
|
|
|
// Task which will copy the assets from the static image directory to the dist directory
|
|
gulp.task("assets-img", function () {
|
|
return gulp.src("./src/static/img/**/*", { encoding: false }).pipe(gulp.dest("./dist/static/img"));
|
|
});
|
|
|
|
// Task which will copy the assets from the static CSS directory to the dist directory
|
|
gulp.task("assets-css", function () {
|
|
return gulp.src("./src/static/css/*").pipe(gulp.dest("./dist/static/css"));
|
|
});
|
|
|
|
gulp.task("assets", gulp.parallel("assets-js", "assets-img", "assets-css"));
|
|
|
|
// The default task which runs at start of the gulpfile.js
|
|
gulp.task("default", gulp.series("build-clean", "typescript", /*"pre-compile",*/ "views", "assets"), () => {
|
|
console.log("Done");
|
|
}); |