add a new barebones config file, wip
This commit is contained in:
parent
9d0e886edb
commit
5feb3a199c
|
@ -0,0 +1,39 @@
|
||||||
|
/**
|
||||||
|
* Base config
|
||||||
|
*
|
||||||
|
* src - main assets folder
|
||||||
|
* public - folder where assets should be compiled
|
||||||
|
*/
|
||||||
|
const config = {
|
||||||
|
src: './assets',
|
||||||
|
public: './',
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export configuration that is used in gulpfile
|
||||||
|
*
|
||||||
|
* For scripts and styles, each file will be a separate bundle
|
||||||
|
*
|
||||||
|
* base - base configuration
|
||||||
|
* scripts - array of script files to create bundles from
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* Base
|
||||||
|
*/
|
||||||
|
base: config,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scripts
|
||||||
|
*/
|
||||||
|
scripts: [
|
||||||
|
`${config.src}/scripts/scripts.js`,
|
||||||
|
],
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Styles
|
||||||
|
*/
|
||||||
|
styles: [
|
||||||
|
`${config.src}/styles/*.scss`,
|
||||||
|
],
|
||||||
|
};
|
|
@ -19,18 +19,15 @@ import notify from 'gulp-notify';
|
||||||
import runSequence from 'run-sequence';
|
import runSequence from 'run-sequence';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Barebones config
|
||||||
|
*/
|
||||||
|
import config from './config.barebones';
|
||||||
|
|
||||||
const { log } = console;
|
const { log } = console;
|
||||||
let production = false;
|
let production = false;
|
||||||
let error = false;
|
let error = false;
|
||||||
|
|
||||||
/**
|
|
||||||
* Config
|
|
||||||
*/
|
|
||||||
const config = {
|
|
||||||
src: './assets',
|
|
||||||
public: './',
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tasks - in order
|
* Tasks - in order
|
||||||
*/
|
*/
|
||||||
|
@ -55,14 +52,14 @@ function notification(message = '', status = 'success') {
|
||||||
* Clean
|
* Clean
|
||||||
*/
|
*/
|
||||||
gulp.task('clean', () => (
|
gulp.task('clean', () => (
|
||||||
gulp.src([`${config.public}/css`, `${config.public}/js`], {
|
gulp.src([`${config.base.public}/css`, `${config.base.public}/js`], {
|
||||||
read: false,
|
read: false,
|
||||||
})
|
})
|
||||||
.pipe(clean())
|
.pipe(clean())
|
||||||
));
|
));
|
||||||
|
|
||||||
gulp.task('styles', () => (
|
gulp.task('styles', () => (
|
||||||
gulp.src([`${config.src}/styles/*.scss`])
|
gulp.src(config.styles)
|
||||||
.pipe(gulpif(!production, sourcemaps.init()))
|
.pipe(gulpif(!production, sourcemaps.init()))
|
||||||
.pipe(sass({
|
.pipe(sass({
|
||||||
outputStyle: production ? 'compressed' : 'nested',
|
outputStyle: production ? 'compressed' : 'nested',
|
||||||
|
@ -78,7 +75,7 @@ gulp.task('styles', () => (
|
||||||
suffix: '.min',
|
suffix: '.min',
|
||||||
}))
|
}))
|
||||||
.pipe(gulpif(!production, sourcemaps.write('.')))
|
.pipe(gulpif(!production, sourcemaps.write('.')))
|
||||||
.pipe(gulp.dest(`${config.public}/css`))
|
.pipe(gulp.dest(`${config.base.public}/css`))
|
||||||
));
|
));
|
||||||
|
|
||||||
gulp.task('scripts', () => {
|
gulp.task('scripts', () => {
|
||||||
|
@ -88,7 +85,7 @@ gulp.task('scripts', () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
rollup({
|
rollup({
|
||||||
entry: `${config.src}/scripts/scripts.js`,
|
entry: `${config.base.src}/scripts/scripts.js`,
|
||||||
plugins: [
|
plugins: [
|
||||||
multiEntry(),
|
multiEntry(),
|
||||||
buble(),
|
buble(),
|
||||||
|
@ -100,7 +97,7 @@ gulp.task('scripts', () => {
|
||||||
commonjs({
|
commonjs({
|
||||||
include: [
|
include: [
|
||||||
'node_modules/**',
|
'node_modules/**',
|
||||||
`${config.src}/**`,
|
`${config.base.src}/**`,
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
json(),
|
json(),
|
||||||
|
@ -114,7 +111,7 @@ gulp.task('scripts', () => {
|
||||||
format: 'iife',
|
format: 'iife',
|
||||||
moduleName: 'BarebonesBundle',
|
moduleName: 'BarebonesBundle',
|
||||||
sourceMap: !production,
|
sourceMap: !production,
|
||||||
dest: `${config.public}/js/script.min.js`,
|
dest: `${config.base.public}/js/script.min.js`,
|
||||||
});
|
});
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
notification('Failed to compile scripts. 😱', 'error');
|
notification('Failed to compile scripts. 😱', 'error');
|
||||||
|
@ -127,9 +124,9 @@ gulp.task('scripts', () => {
|
||||||
* Watch
|
* Watch
|
||||||
*/
|
*/
|
||||||
gulp.task('watch-files', tasks, () => {
|
gulp.task('watch-files', tasks, () => {
|
||||||
gulp.watch(`${config.src}/styles/**/*.scss`, ['styles']);
|
gulp.watch(`${config.base.src}/styles/**/*.scss`, ['styles']);
|
||||||
gulp.watch(`${config.src}/scripts/**/*.js`, ['scripts']);
|
gulp.watch(`${config.base.src}/scripts/**/*.js`, ['scripts']);
|
||||||
gulp.watch(`${config.src}/images/**/*.*`, ['images']);
|
gulp.watch(`${config.base.src}/images/**/*.*`, ['images']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,14 +134,14 @@ gulp.task('watch-files', tasks, () => {
|
||||||
*/
|
*/
|
||||||
gulp.task('images', () => {
|
gulp.task('images', () => {
|
||||||
// hadle all images that are not svg
|
// hadle all images that are not svg
|
||||||
gulp.src(`${config.src}/images/**/*.*`)
|
gulp.src(`${config.base.src}/images/**/*.*`)
|
||||||
.pipe(imagemin({
|
.pipe(imagemin({
|
||||||
progressive: true,
|
progressive: true,
|
||||||
svgoPlugins: [{
|
svgoPlugins: [{
|
||||||
removeViewBox: false,
|
removeViewBox: false,
|
||||||
}],
|
}],
|
||||||
}))
|
}))
|
||||||
.pipe(gulp.dest(`${config.public}/img`));
|
.pipe(gulp.dest(`${config.base.public}/img`));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue