From aaae2499dd5fe41269cee56b128f93b2d482d4d8 Mon Sep 17 00:00:00 2001 From: Trivernis Date: Wed, 21 Aug 2019 14:16:47 +0200 Subject: [PATCH] Initial structure --- .gitignore | 7 +++++++ gulpfile.js | 42 ++++++++++++++++++++++++++++++++++++++++++ tsconfig.json | 21 +++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 .gitignore create mode 100644 gulpfile.js create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..331e819 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.nyc_output/ +coverage/ +node_modules/ +npm-debug.log +test/*.log +dist +.idea \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..e474b8c --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,42 @@ +const {src, dest, watch, series, task} = require('gulp'); +const sass = require('gulp-sass'); +const ts = require('gulp-typescript'); +const minify = require('gulp-minify'); +const del = require('delete'); + + +function clearDist(cb) { + del('dist/*', cb); +} + +function compileTypescript() { + let tsProject = ts.createProject('tsconfig.json'); + let tsResult = tsProject.src().pipe(tsProject()); + return tsResult + //.pipe(minify()) + .pipe(dest('dist')); +} + +function minifyJs() { + return src('src/public/javascripts/**/*.js') + .pipe(minify({ + ext: { + src: '-debug.js', + min: '.js' + } + })) + .pipe(dest('dist/public/javascripts')); +} + +function compileSass() { + return src('src/public/stylesheets/sass/**/style.sass') + .pipe(sass().on('error', sass.logError)) + .pipe(dest('dist/public/stylesheets')); +} + +task('default', series(clearDist, compileTypescript, minifyJs, compileSass)); +task('watch', () => { + watch('src/public/stylesheets/sass/**/*.sass', compileSass); + watch('**/*.js', minifyJs); + watch('**/*.ts', compileTypescript); +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9ef65e8 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "outDir": "./dist", + "sourceMap": true, + "target": "es2018", + "allowJs": true, + "moduleResolution": "node", + "module": "commonjs" + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "**/*.spec.ts" + ] +} \ No newline at end of file